客户端异步接收比较怪异现象
我每次第一次发包,异步接收不到,我每次send 2次才能立刻收到包。比如:我开始先得到用户信息,send一次,没有立刻收到信息,比如我这有心跳30秒发一次,等这个socket再次发送心跳包的时候(30秒后)之前发送的获取用户信息才会跟心跳包一起或者一前一后收到,好像心跳30秒等待把其它线程全阻塞了一样,但是经过检验并不是,而是,每次发送一次不能立刻收到返回信息,必须第二次发送才返回第一次包和第二次的包(这个第二次同一个socket不一定都是获取用户信息其它比如心跳)
各位我这种情况有碰到过吗? 一般什么情况下出现? 谢谢各位
------解决方案--------------------
这个没有遇到过,最好把你的代码贴出来。
------解决方案--------------------
又看了下你前面帖子,总觉得在tcp连接和接收函数内部的Done.WaitOne()会有问题,也没看明白为什么要用,试着屏蔽掉看看?
------解决方案--------------------
代码在哪里呢?
WaitOne就是等对应的信号量了,所在的线程会阻塞。只有等信号量Set时才返回,或者是调用时有timeout的参数,那么超时仍没有被Set的话则会返回。返回值可以识别是否是超时。