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

hu_bird 2008-12-24 11:11:49
服务端:创建了两个线程来处理客户端请求,一个线程用于接收连接进来的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个创建的连接,这次是第二次取出的连接,在前面是已经使用过的)进行发送、接收数据时,测试程序无法接收到服务端的返回的数据。(不管在客户端还是服务端,在发送/接收完数据后,我都没有关闭连接

从服务端的日志看,服务端是接收到了客户端发来的数据的,并且服务端也成功将数据发送出去了,只是客户端没有接收到。

此问题困扰在下两天了,望达人指教~
...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lclyb 2009-09-01
  • 打赏
  • 举报
回复
学习一下!
king19840811 2008-12-24
  • 打赏
  • 举报
回复
mark
bbbbbb888888 2008-12-24
  • 打赏
  • 举报
回复
贴代码,look look
sunchaohuang 2008-12-24
  • 打赏
  • 举报
回复
代码问题 请认真检查
laidon 2008-12-24
  • 打赏
  • 举报
回复
1\中断并检查你的Byte[]以及stream的长度和值
2\看是不是有没有释放的变量
3\检查有无引用类型和值类型的错误使用

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧