G gggoobm Unregistered / Unconfirmed GUEST, unregistred user! 2007-09-19 #1 clientsocket 收大量信息时,丢包.怎么解决? 另外大富翁全文检索怎么打不开...
G guanyueguan Unregistered / Unconfirmed GUEST, unregistred user! 2007-09-19 #3 TCP是不會丟包的,可能是你程序沒處理過來,或者你服務端處理的太慢了。
X xingkong97 Unregistered / Unconfirmed GUEST, unregistred user! 2007-09-19 #5 强烈要求换成TIDTCPClient和TIDTCPServer去进行通信,因为他们是工作在阻塞模式下的。
G gggoobm Unregistered / Unconfirmed GUEST, unregistred user! 2007-09-19 #6 ServerSocket写得太快 ClientSocket读得太慢
赛 赛特 Unregistered / Unconfirmed GUEST, unregistred user! 2007-09-30 #7 to xingkong97: clientsocket serversocket 和 IDTCPClient IDTCPServer,各有各的脾气。我在用 IDTCPClient IDTCPServer时,如果通信未结束,而idtcpclient中途断开了,idtcpserver就会报错:Exception EOSError in module... 我在 TCPServerException 里面也 AException := nil;了,但是没用,用try except也没用
to xingkong97: clientsocket serversocket 和 IDTCPClient IDTCPServer,各有各的脾气。我在用 IDTCPClient IDTCPServer时,如果通信未结束,而idtcpclient中途断开了,idtcpserver就会报错:Exception EOSError in module... 我在 TCPServerException 里面也 AException := nil;了,但是没用,用try except也没用
晶 晶晶 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-04 #9 如果采用TCP,则系统会在协议层确保数据发送的正常,如果你接收出错,则说明你的软件在处理接收的时候出现错误。cs两端采用发送验证是不可取的(UDP的例外),因为那是在应用层面再重复协议层面的事情(而且更加没有效率,会很慢的)。估计是你在处理“粘包”的时候出现问题了。如果你只是发送文件,可以采用两种方式来处理: 1、全部使用blocking模式; 2、在客户端使用尽可能大的(例如:8K大小)缓存来接收数据,然后通过Recv函数返回的值确定接收的实际字节数。 如果是发送结构,则最好采用blocking模式(delphi在MIDAS也采用这种方式)。以确保结构不被分包操作破坏^_^
如果采用TCP,则系统会在协议层确保数据发送的正常,如果你接收出错,则说明你的软件在处理接收的时候出现错误。cs两端采用发送验证是不可取的(UDP的例外),因为那是在应用层面再重复协议层面的事情(而且更加没有效率,会很慢的)。估计是你在处理“粘包”的时候出现问题了。如果你只是发送文件,可以采用两种方式来处理: 1、全部使用blocking模式; 2、在客户端使用尽可能大的(例如:8K大小)缓存来接收数据,然后通过Recv函数返回的值确定接收的实际字节数。 如果是发送结构,则最好采用blocking模式(delphi在MIDAS也采用这种方式)。以确保结构不被分包操作破坏^_^