J
jayxsjf
Unregistered / Unconfirmed
GUEST, unregistred user!
我正在编写一个SOCKET通讯的程序,在调试过程中出现了好几个
问题,实在找不到办法了:
1。我通过定时去检查TClientSocket.Socket.Connected来判断
是否断开了连接,如果断开了则重新连接,但是程序运行一段时间
后就报缓冲区已满(10055)错误,我通过跟踪发现TClientSocket
在Close的时候,真正负责通信的底层SOCKET并为CLOSE,我通过
在TClientSocket.close前增加TClientSocket.Socket.close
这样放在我的机器上运行了三天没有出错,正在我以为解决了的时候
又报了这个错,请问出现这个错是我说的原因吗?还是另有办法解决?
(注:这三天我一直断开了与服务器的连接)
2.还有个问题就是:无论是CLIENT端还是SERVER端,只要消息发的快了
就有可能几条消息合并在一起收到,我通过延时可以解决,但是我现在的
程序不允许延时,请问还有什么好方法吗?
3。最后一个问题就是:在网络正常连接的情况下,我要是拔掉网线,CLIENT
和SERVER都不能检测到断开,在CLIENT端我通过读取
TClientSocket.Socket.RemoteHost可以判断出来,可是SERVER端就没有办法
了,还请帮忙!!
问题,实在找不到办法了:
1。我通过定时去检查TClientSocket.Socket.Connected来判断
是否断开了连接,如果断开了则重新连接,但是程序运行一段时间
后就报缓冲区已满(10055)错误,我通过跟踪发现TClientSocket
在Close的时候,真正负责通信的底层SOCKET并为CLOSE,我通过
在TClientSocket.close前增加TClientSocket.Socket.close
这样放在我的机器上运行了三天没有出错,正在我以为解决了的时候
又报了这个错,请问出现这个错是我说的原因吗?还是另有办法解决?
(注:这三天我一直断开了与服务器的连接)
2.还有个问题就是:无论是CLIENT端还是SERVER端,只要消息发的快了
就有可能几条消息合并在一起收到,我通过延时可以解决,但是我现在的
程序不允许延时,请问还有什么好方法吗?
3。最后一个问题就是:在网络正常连接的情况下,我要是拔掉网线,CLIENT
和SERVER都不能检测到断开,在CLIENT端我通过读取
TClientSocket.Socket.RemoteHost可以判断出来,可是SERVER端就没有办法
了,还请帮忙!!