socket.sendUrgentData(0xFF),发一个字节的数据,和接受方的缓冲有关系么?

解决方案 »

  1.   

    楼主找出问题所在,记得call一声
      

  2.   

    貌似找到原因了,似乎只是在win7系统下会出现这种情况
    http://coral0212.iteye.com/blog/1810905
    我这边不具备验证的环境,楼主可以抽时间验证一下吗
      

  3.   

    有可能是这样的,windows7不允许某一台主机总在发送紧急数据包,这样会导致信道堵塞,所以当主机发送一定数量的紧急数据包后,该主机就再不允许发送数据包了,即报错。
      

  4.   

    问一下客户端和服务器端有米有同事setOOBInline方法?
      

  5.   

    楼主能抓一下包。
    我个人的理解是这样子的,sendUrgentData被调用之后,网络上立即发了一个IP包出去,同时占用了一个发送窗口;这个发送窗口要一直到对端的应用从socket读取数据,回了ACK之后才会被释放。这个发送窗口通常是8或者16,所以楼主的程序到16之后就出错了。你可以参考一下下面这个文章:
    http://www.cnblogs.com/likwo/archive/2012/12/12/2815344.htmlPS,你为什么要用这个函数去发送数据呢?一般实现是不建议这么发数据的,而是另外再建立一个TCP/socket连接去进行收发数据。