我正在使用winsock并以标准方式打开我的套接字(我正确处理错误,但为了这个问题,我已经使代码简短了);
SOCKET sSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
如果我这样连接它,偶尔会丢失连接。
connect(sSocket, reinterpret_cast<SOCKADDR*>(&sinAddr), sizeof(sinAddr));
发生这种情况时,是否需要关闭并重新创建套接字,还是应该重新调用connect()?
答案 0 :(得分:1)
套接字close()
后,它不能再使用了。
反之亦然:只要未在套接字上调用close()
,就可以(重新)使用它。
对socket()
的调用为调用进程分配套接字描述符。套接字描述符存在并保持分配给进程,直到调用close()
。