0

我正在使用winsock,并以标准方式打开我的套接字(我正确处理错误,但为了这个问题,我已将代码简化);

SOCKET sSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

如果我像这样连接它,它可能偶尔会失去连接。

connect(sSocket, reinterpret_cast<SOCKADDR*>(&sinAddr), sizeof(sinAddr));

发生这种情况时,我需要关闭并重新创建套接字,还是应该重新调用 connect() ?

4

1 回答 1

1

一个套接字被close()编辑后,就不能再使用了。

或者反过来:只要close()没有在套接字上调用,它就可以(重新)使用。

调用socket()分配一个套接字描述符给调用进程。套接字描述符存在并一直分配给进程,直到close()被调用。

于 2013-02-02T11:28:15.047 回答