我的程序主机有时候(比较少)会遗漏从ClientSocket发过来的信息,不知道是为什么,是不是因为用的ctNonBlock的副作用阿。
谁碰到过这情况吗?

解决方案 »

  1.   

    不要只靠经验摸索,必要的时候还是看些相关资料或者书.下面的文字摘自'TCP/IP详解'卷一,
    两个应用程序通过T C P 连接交换8 bit 字节构成的字节流。T C P 不在字节流中插入记录标识符。我们将这称为字节流服务(byte stream service )。如果一方的应用程序先传1 0 字节,又传2 0 字节,再传5 0 字节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分4 次接收这8 0 个字节,每次接收2 0 字节。一端将字节流放到T C P 连接上,同样的字节流将出现在T C P 连接的另一端。
      

  2.   

    很多I n t e r n e t 应用使用一个回车和换行来标记每个应用记录的结束。如HTTP.另外一种技术是在每个记录之前加上一个记录的字节计数,DNS和Sun RPC采用了这种技术。