ServerSocket有时候会遗漏ClientSocket发过来的信息,大家遇到过吗?

cizi 2003-11-04 09:03:34
我的程序主机有时候(比较少)会遗漏从ClientSocket发过来的信息,不知道是为什么,是不是因为用的ctNonBlock的副作用阿。
谁碰到过这情况吗?
...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
halfdream 2003-11-06
  • 打赏
  • 举报
回复
很多I n t e r n e t 应用使用一个回车和换行来标记每个应用记录的结束。如HTTP.

另外一种技术是在每个记录之前加上一个记录的字节计数,DNS和Sun RPC采用了这种技术。
halfdream 2003-11-06
  • 打赏
  • 举报
回复
不要只靠经验摸索,必要的时候还是看些相关资料或者书.

下面的文字摘自'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 连接的另一端。

cizi 2003-11-05
  • 打赏
  • 举报
回复
我研究了很久,发现这样的现象:
客户端不能连续发送2条信息给服务器端,否则第二条信息有可能被服务器端忽略。我在2条发送信息的命令之间加了延时语句,就没有问题了。
但是不知道是什么原因!
halfdream 2003-11-05
  • 打赏
  • 举报
回复
一般是代码编写上的错误,
贴出你出问题的代码,可以帮你指出来。

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧