重置套接字连接

时间:2010-11-23 16:51:26

标签: c++ sockets

我的应用程序通过以太网作为客户端连接到服务器进程。

由于服务器众所周知且不会更改,因此使用

设置UDP和TCP
socket(); 
setsockopt(SO_REUSEADDR);
bind(); 
connect();

连接协议包括双向发送的心跳。

当我检测到连接错误时,例如听到超时,我需要重置连接。

将()连接到NULL地址然后在短暂停顿后重新连接()是否足够,或者我应该关闭套接字然后从头开始重新初始化?

感谢

2 个答案:

答案 0 :(得分:2)

发生套接字错误后,您必须丢弃手头的套接字并使用新套接字重新启动安装程序。

Winsock documentation,例如:

  

当套接字之间的连接是   破了,插座应该是   丢弃并重新创建。当一个   问题在连接上发展   套接字,应用程序必须丢弃   并重新创建所需的套接字   为了回归稳定点。

答案 1 :(得分:1)

你必须close(2)套接字并重新做一切。为什么你bind(2)在客户端?