为了账号安全,请及时绑定邮箱和手机立即绑定

同一个Socket实例第二次无法接收服务端数据!!

同一个Socket实例第二次无法接收服务端数据!!

吃鸡游戏 2018-12-26 16:14:15
服务端:创建了两个线程来处理客户端请求,一个线程用于接收连接进来的Socket,并将Socket添加到一个队列Queue对象中;另外一个线程用于将Queue中的Socket提出来进行接收、发送操作,接收、发送操作采用异步方式。 客户端:用连接到服务端的Socket创建一个NetworkStream的实例(NetworkStream stream = new NetworkStream(socket, true);),并将该NetworkStream的实例,包装到一个System.IO.BufferedStream的实例中(/*用于接收*/Stream inStream = new BufferedStream(stream); /*用于发送*/Stream outStream = new BufferedStream(stream);)进行与服务端的数据收发。 然后我创建了一个连接池,初始化创建了10个服务端的连接,然后写了一个单线程的测试程序,从连接池中将这10个连接依次取出来发送、接收数据,一切OK(将连接都还回了连接池),但当我再次从连接池取出一个连接(已用完10个创建的连接,这次是第二次取出的连接,在前面是已经使用过的)进行发送、接收数据时,测试程序无法接收到服务端的返回的数据。(不管在客户端还是服务端,在发送/接收完数据后,我都没有关闭连接) 从服务端的日志看,服务端是接收到了客户端发来的数据的,并且服务端也成功将数据发送出去了,只是客户端没有接收到。 此问题困扰在下两天了,望达人指教~
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

你的信息量太少,无法判断你的问题。socket 做收发是肯定没有问题的。肯定是你程序的问题。可能需要更多的代码来判断你的问题所在。

查看完整回答
反对 回复 2018-12-30
  • 2 回答
  • 0 关注
  • 355 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信