tcp的socket通讯需要通过对方回复来判断稳定性吗(50)

  • 主题发起人 主题发起人 青云
  • 开始时间 开始时间

青云

Unregistered / Unconfirmed
GUEST, unregistred user!
我们的程序里经常用到tcp的互相通讯;为了防止不稳定,也就是说,你发出去,怕对方收不到;所以都是 发一个过去,对方回复(一般是回复一模一样的,表示收到)如果对方不回复,那么经过一段延时(比如3秒),就再发,直到对方回复为止;我觉得这样做,看上去稳定,但是增加了开发难度;其实tcp通讯内部本来就有握手,如果对方接受不到,那么发送方的send命令会失败的;不需要通过对方是否回复来判断你这次是否发送成功了,除非你用udp协议,才需要对方的回复来确认发送成功与否;所以下面这段话,只要程序没有跑到except里,那么对方肯定收到了;begin try ClientSocket1.Socket.SendBuf(...); except showmessage('发送失败'); end;end;所以我现在想确认的是: 上面这段代码,有没有这种可能性: 程序运行正常,没有走到except里,但是对方却没有收到
 
http://bbs.2ccc.com/topic.asp?topicid=368197
 
http://kb.cnblogs.com/a/1217416/
 
ClientSocket1.Socket.SendBuf(...); 云大哥: 应该检查返回的代码是什么来判断是否发送成功! try ClientSocket1.Socket.SendBuf(...); except showmessage('发送失败'); end; 所以我现在想确认的是: 上面这段代码,有没有这种可能性: 程序运行正常,没有走到except里,但是对方却没有收到 这样写肯定有这个可能啊!
 
send 后, wsagetlasterror没有错,那便可以算正常了,如果一个事务不成功.可以让客户机再次请求.不推荐一问一答
 
后退
顶部