读书人

关于CLIENTSOCKET控件读取数据丢包有关

发布时间: 2013-01-02 13:08:44 作者: rapoo

关于CLIENTSOCKET控件读取数据丢包问题?
delphi中用了clientSOCKET控件用于读取服务器的数据,

发现当服务器发送数据过快时, 客户段读取的数据会丢包或者解析错误。

现在想把读取数据的函数放到一线程中,请问如何处理?

或者是否还有别的解决方案?
[解决办法]
这个问题好办的,你采用的是tcp传输的,针对这个,服务器端发送的时候进行两次交互,发送的时候首先发送长度,客户端接收到以后,回传响应并且设置接收缓冲区长度,然后服务器再发送,发送完毕后,客户端再发响应,这样就不会有问题了
[解决办法]
如何发送,如何接收?使用ReceiveBuf/ReceiveText的时候有没有对返回值进行处理?
[解决办法]
TCP协议, 只要连接没有中断, 服务端发送出来的客户端是肯定会接收到的。

"发现当服务器发送数据过快时, 客户段读取的数据会丢包或者解析错误。 "
这个问题一般都出在客户端的接收和处理代码上。当服务器发送数据较多较快时,会出现两次(或多次)发送的数据包同时到达客户端,此时,如果客户端的接收和处理代码不正确处理的话,就会出问题了。

读书人网 >.NET

热点推荐