且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何将客户端重新连接到服务器?

更新时间:2022-02-21 22:15:44

曾经被connect()使用过的套接字 不能不能被重用,并再次调用.

A socket that had been connect()ed once cannot be reused with another call to connect().

连接到TCP服务器并读取/写入一些数据的步骤如下(伪代码):

The steps to connect to a TCP server and read/write some data are as follows (pseudo code):

fd = socket(...) // create socket descriptor (allocate socket resource)
connect(fd, server-address, ...) // connect to server
read/write(fd, data)  // read from server 
close(fd) // close /socket descriptor (free socket resource)

如果服务器在connect之后关闭,则所有客户端可以并且应该做的是

In case the server goes down after connect all the client could and shall do is

close(fd) // close /socket descriptor (free socket resource)

,然后重新开始:

fd = socket(...) // create socket descriptor (allocate socket resource)
...

从头开始:

connect(fd, server-address, ...) // connect to server
...

可能会导致不确定的行为,但至少会导致错误.

would probably lead to undefined behaviour, but at least to an error.