我的程序是基于C/S的。思路如下:1.客户机每隔100ms向服务器发送不等长的数据包(很短,在10-20个字节不等)。
例如:第一个100ms发送:02A0D203(ASCII码),第二个100ms发送 03A0D203,然后每隔100ms发送一次,不停的发,利用sendText()发送。2.服务器响应OnRead()事件,然后利用ReceiveText接收。3.采用异步方式。出现问题:
服务器端接收数据时,有时接到02A0D203,但有时是接受02A0D20303A0D203,也就是说客户机发送的第一个100ms和第二个100ms的数据被一块接收了。这样将导致我的处理出现问题。
但是当我把客户机发送时间间隔改成200ms,将不会出现上述问题。但我的程序必须需要100msVC中可以通过setsockopt(SOCKET,IPPROTO_TCP1,TCP_NODELAY,&TRUE,sizeof(BOOL))设置立即发送,TClientSocket中是否有这样的设置?请问应该如何处理,非常感谢!
例如:第一个100ms发送:02A0D203(ASCII码),第二个100ms发送 03A0D203,然后每隔100ms发送一次,不停的发,利用sendText()发送。2.服务器响应OnRead()事件,然后利用ReceiveText接收。3.采用异步方式。出现问题:
服务器端接收数据时,有时接到02A0D203,但有时是接受02A0D20303A0D203,也就是说客户机发送的第一个100ms和第二个100ms的数据被一块接收了。这样将导致我的处理出现问题。
但是当我把客户机发送时间间隔改成200ms,将不会出现上述问题。但我的程序必须需要100msVC中可以通过setsockopt(SOCKET,IPPROTO_TCP1,TCP_NODELAY,&TRUE,sizeof(BOOL))设置立即发送,TClientSocket中是否有这样的设置?请问应该如何处理,非常感谢!
解决方案 »
- 如何利用SPCOM将10进制的数据变成16进制发送出去???
- 百分求解二进制问题(要过程)
- 如何定位到指定记录?
- 读文本文件?初学者请问
- 用delphi怎么做FLV播放器!!用什么控件!在线等
- 将paradox数据库设了密码后,在BDE及ADO中如何设置才可以正常进入??
- 求助Activeform问题!
- idhttp 连接网页问题...
- 我不小心把c:\下的几个系统文件删除了,现在垃圾筒中。现在电脑不能启致动了d 它提示:multi(0)disk(0)rdisk(0)partition(1)\bootsect.dos I/O ERRORE,
- 哪里有FormContainer控件包源代码或正式版下载?
- ListView里面上下移动Item的问题
- 谁有抽奖类的源码啊?就是抽身份证号、手机号等的那种,主要想要数字的滚动效果
winsock;setsockopt(TClientSocket.Socket.SocketHandle,IPPROTO_TCP1,TCP_NODELAY,#1,1);具体的自己修改一下后面的两个参数。