+ -
当前位置:首页 → 问答吧 → 请问如何多线程处理客户端发送的SOCKET

请问如何多线程处理客户端发送的SOCKET

时间:2011-09-08

来源:互联网

情况是这样的:我现在用多线程处理客户端发送来的请求,得到的socket字符串,但是这个字符串是连续的,比如应该的长度为111,但是我接受到的可能是多个组成的111222333444,也就是说并不是一个SOCKET发送的,但是我是要一个个解析这些字段的比如解析111或者222,而且SOCKET服务端一直在接受字段客户端不停止发送我就没法处理这个字符串啊???求高手指点

作者: woniu4500   发布时间: 2011-09-08

发什么接收什么啊

处理就在run里面,接收的时候就处理

祝楼主好运

作者: wangquanzheng   发布时间: 2011-09-08

多个socket发送一个连续的数据,你怎么保证它们的顺序?
如果你用类似于索引的方式保证顺序,那么服务端可以把socket接收到的数据保存到一个缓存,直到接收完毕后按索引顺序重新还原数据
否则就是一个socket发送一个连续的数据,这个和多线程没关系,每个线程有自己的socket,发送自己的数据,互不干扰

作者: qybao   发布时间: 2011-09-08

不啊,我是服务端啊,客户端发给我的报文是不一样的啊,我服务端要一直轮询处理,只要有报文发送过来就进行处理,我就是不明白,服务端一直在接收,接收完毕后可能存了多个报文,我咋处理呢

作者: woniu4500   发布时间: 2011-09-08

Socket socket = serverSocket.accept();
//服务器端收到一个客户端连接,就会建立一个socket,如果你的socket是个成员变量,那么可能就会有问题,如果是个局部变量,那么每次建立一个socket以后,把它交给线程去处理就可以了,这样的socket是互相独立的,互不影响的,线程要怎么接收,怎么处理,彼此之间都不会有干扰的
//另外,socket通信,协议就要定好,比如每次发送多少字节长度的内容,发送信息是否带有数据长度信息等等。

作者: qybao   发布时间: 2011-09-08

热门下载

更多