首页新闻找找看学习计划

Socket 发送成功却接受不到数据

0
悬赏园豆:50 [已关闭问题] 关闭于 2012-03-28 17:15

写了个Socket的客户端和服务端的程序。

客户端是一个Socket池,阻塞模式,每次需要发送数据时从池里取一个有效的Socket,Socket池有心跳包机制,每隔一段时间自动发送心跳包。代码在http://www.cnblogs.com/congblog/archive/2012/03/26/2418787.html

服务端是异步的,每收到一个请求开一个线程。接收完数据后马上send一段数据回客户端,并继续等待接收数据。代码在 http://www.cnblogs.com/congblog/archive/2012/03/26/2418804.html

 

正常情况下一切都正常,发送、接收数据都没问题,心跳包也运作正常。但是在服务端停止一段时间后,重新运行服务端,这时客户端的心跳发送到服务端也是正常的,但是客户端一直阻塞收不到服务端的返回,但是调试发现服务端已经发送成功并且回调了endsend方法。为什么客户端一直收不到呢?更奇怪的是以非心跳包的形式调用一次,就一切都正常了。哪位大侠帮忙看看问题出在哪里,感谢

C#
ailove的主页 ailove | 菜鸟二级 | 园豆:382
提问于:2012-03-26 23:40
< >
分享
所有回答(2)
0

写的 好复杂啊。

~风影*IT~ | 园豆:202 (菜鸟二级) | 2012-03-27 09:35

还好吧

支持(0) 反对(0) ailove | 园豆:382 (菜鸟二级) | 2012-03-27 09:41
0

后来测试,发现只有两个程序都运行在本机才会出现,局域网、远程运行都不会。应该是程序跑太快,有竞争冒险。

ailove | 园豆:382 (菜鸟二级) | 2012-03-28 17:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册