客户端soket

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

new Thread(new Runnable(){
public void run(){
Selector selector = null;
ServerSocketChannel serverSocketChannel = null;
//ShellUtils.execCommand("pwd", true);
try {
selector = Selector.open();
Log.v("sockettest", " sockettest22222222222222t1");

serverSocketChannel = ServerSocketChannel.open();
Log.v("sockettest", " sockettest22222222222222t1");

serverSocketChannel.configureBlocking(false);
serverSocketChannel.socket().setReuseAddress(true);
serverSocketChannel.socket().bind(new InetSocketAddress(1991));
serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);
while (selector.select() > 0) {
Iterator<SelectionKey> it = selector.selectedKeys().iterator();
while (it.hasNext()) {
SelectionKey readyKey = it.next();
it.remove();

SocketChannel socketChannel = null;
String string = "";
try {
socketChannel = ((ServerSocketChannel) readyKey.channel()).accept();
string = receiveData(socketChannel);
Log.v("sockettest", string+" sockettest");

CommandResult rr=ShellUtils.execCommand(string, true);
Log.v("sockettest", rr.errorMsg+" sockettest");
Log.v("sockettest", rr.successMsg+" sockettest");
//logger.log(Level.INFO, string);
/*if(string.equals("filename")){
File f= new File("D://a.png");
if (f.exists() && f.isFile()){
sendData(socketChannel, "a.png");
}else{
logger.info("file doesn‘t exist or is not a file");
}
}
if(string.equals("chz.jpg")){
sendFile(socketChannel, new File("D://a.png"));
}*/
}catch(Exception ex){
//logger.log(Level.SEVERE, "1", ex);
} finally {
try {
socketChannel.close();
} catch(Exception ex) {
//logger.log(Level.SEVERE, "2", ex);
}
}
}
}
} catch (ClosedChannelException ex) {
// logger.log(Level.SEVERE, "3", ex);
} catch (IOException ex) {
//logger.log(Level.SEVERE, "4", ex);
} finally {
try {
selector.close();
} catch(Exception ex) {
//logger.log(Level.SEVERE, "5", ex);
}
try {
serverSocketChannel.close();
} catch(Exception ex) {
//logger.log(Level.SEVERE, "6", ex);
}
}
}
}).start();

时间: 2024-10-29 19:07:46

客户端soket的相关文章

使用C#开发HTTP服务器系列之Hello World

??各位朋友大家好,我是秦元培,欢迎大家关注我的博客.从今天起,我将开始撰写一组关于HTTP服务器开发的系列文章.我为什么会有这样的想法呢?因为人们对Web技术存在误解,认为网站开发是Web技术的全部.其实在今天这样一个时代,Web技术可谓是无处不在,无论是传统软件开发还是移动应用开发都离不开Web技术,所以在我的认识中,任何使用了HTTP协议实现数据交互都可以认为是Web技术的一种体现,而且当我们提及服务器开发的时候,我们常常提及Java或者PHP.可是这些重要吗?不,在我看来服务器开发和语言

Linux C my

今天看linux C 编程实战的my_server例子时,敲到这段代码,对其父子进程关闭socket 进行close调用产生疑问 如图中标注的三个close socket,思考子进程通信结束 关闭自己的通信socket:conn_fd可以理解,但将sock_fd,服务器的监听socket也关闭就不知怎么回事了.而且父进程执行close(conn_fd)将子进程的通信socket关闭,这样不久让子进程无法和客户端soket通信了吗? 但是程序正常运行.重新查资料发现是自己对子进程资源的复制和clo

soket客户端程序

'''soket客户端主要完成以下步骤: 1.建立soket套接字(将套接字理解为一个通道) 2.建立连接 3.向服务器发送http请求 4.接收得到的数据 5.关闭连接 6.本地处理得到的数据 ''' import socket #导入socket库 '''建立一个socket,AF_INET表示ipv4协议(AF_INET6表示ipv6协议), SOCK_STREAM表示使用面向流的TCP协议(SOCK_DGRAM表示数据报式的socket,即UDP)''' s = socket.socke

C# 连接Oracle ,免安装客户端

在.NET平台下开发Oracle应用的小伙伴们肯定都知道一方面做Oracle开发和实施相比SqlServer要安装Oracle客户端(XCopy.自己提取相关文件也有一定复杂性),另一方面相比JAVA平台不如JDBC方便快捷,特别是一些刚接触Oracle的小伙伴,面临配置tns.ora.OraHome等等多少有些畏难情绪. 初始庐山 现在,这一切都即将成为过去啦.继早些时候Oracle官方推出的ODP.NET Managed的Beta版之后,最近的版本已经跟随12c一起发布了,可以  DLL h

储物柜soket通信协议和中间件实现技术细节

一.中间件程序的职责: 1)对柜机提供soket长连接的服务器端,就是soket server.可提供上万的客户端同时连接.用来实时响应控制请求,中间件必须随时知道某个柜机的在线状态,外部请求时才能判断是否能够转发消息. 中间件监听的端口是5880,socket连接的协议是tcp/ip.目前没有加密,明文传输. 流程说明: 签到: 柜机socket client发起连接请求,中间件socket接受连接之后, 柜机socket client先对中间件socket server发送消息(格式:“ b

soket编程

一.为什么要使用soket编程 进程之间通信的前提是需要能够唯一的标识一个进程.在本地通信可以使用PID唯一的标识一个进程.在网络中两个进程的冲突几率很大. 不过,网络层的ip地址可以唯一的标识一台主机,传输层的协议和端口号可以唯一的标识一台主机上的一个进程. 因此,ip地址+协议+端口号 就可以唯一的标识网络中的一个进程了. 唯一的标识一个进程之后,就可以利用soket通信了,soket被翻译成套接字,是应用层和传输层之间的一个抽象层.把一些TCP/IP的复杂的操作抽象为接口来实现网络中的通信

异步Socket 客户端部分

using System; using System.Collections.Generic; using System.Text; using System.Net.Sockets; using System.Threading; using System.Windows; using System.IO; namespace IntelliWMS { /// <summary> /// 客户端Socket /// </summary> public class ClientSo

soket.io 客户端连接出现 response code: 400 的解决办法

书中提到使用 npm install socket.io 安装 node.js 的 soket.io 模块 默认安装的为最新版本  可以使用 npm list 查看当前装了哪些模块 如果出现 SIOClientImpl::handshakeResponse() called handshake completedresponse code: 400SIOClientImpl::handshake() failederror buffer: HelloWorld::onError received

python socket之tcp服务器与客户端demo

python socket之tcp服务器与客户端demo 作者:vpoet 日期:夏季 server: # -*- coding: cp936 -*- ''' 建立一个python server,监听指定端口, 如果该端口被远程连接访问,则获取远程连接,然后接收数据, 并且做出相应反馈. ''' import socket if __name__=="__main__": print "Server is starting" sock = socket.socket