我的程序是基于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中是否有这样的设置?请问应该如何处理,非常感谢!