我每次第一次发包,异步接收不到,我每次send 2次才能立刻收到包。比如:我开始先得到用户信息,send一次,没有立刻收到信息,比如我这有心跳30秒发一次,等这个socket再次发送心跳包的时候(30秒后)之前发送的获取用户信息才会跟心跳包一起或者一前一后收到,好像心跳30秒等待把其它线程全阻塞了一样,但是经过检验并不是,而是,每次发送一次不能立刻收到返回信息,必须第二次发送才返回第一次包和第二次的包(这个第二次同一个socket不一定都是获取用户信息其它比如心跳)各位我这种情况有碰到过吗? 一般什么情况下出现? 谢谢各位

解决方案 »

  1.   

    又看了下你前面帖子,总觉得在tcp连接和接收函数内部的Done.WaitOne()会有问题,也没看明白为什么要用,试着屏蔽掉看看?
      

  2.   

    代码在哪里呢?
    WaitOne就是等对应的信号量了,所在的线程会阻塞。只有等信号量Set时才返回,或者是调用时有timeout的参数,那么超时仍没有被Set的话则会返回。返回值可以识别是否是超时。