2010-11-23 137 views
3

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

由于服务器是众所周知的,将不会改变,UDP和TCP都设置使用

socket(); 
setsockopt(SO_REUSEADDR); 
bind(); 
connect(); 

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

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

只需连接()到NULL地址,然后在短暂暂停后重新连接(),或者我应该关闭套接字然后重新初始化足够吗?

感谢

回答

1

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

+0

我bind(),以便指定源端口和地址 - 服务器只接受来自已知端口和地址的连接。 – DanS 2010-11-23 17:12:14

2

套接字错误之后,你必须放弃一本在手,并用新的套接字重新启动安装。

Winsock documentation,例如:

当插座之间的连接是 破碎,插座应该是 丢弃和重新创建。当连接的 套接字上出现 问题时,应用程序必须放弃 并重新创建 所需的套接字,以便返回到稳定点。

相关问题