log*_*hee 6 c unix sockets network-programming
我的服务器程序(套接字流)正在运行并且它接受客户端。由于某些异常情况,服务器正在终止。另一端客户端正在等待服务器回复。如何将正在运行的客户端重新连接到新服务器?套接字中的任何功能?
已被connect()
ed 一次的套接字不能与对 的另一个调用重用connect()
。
连接TCP服务器并读写部分数据的步骤如下(伪代码):
sd = socket(...) // create socket descriptor (allocate socket resource)
connect(sd, server-address, ...) // connect to server
read/write(sd, data) // read from server
close(sd) // close /socket descriptor (free socket resource)
Run Code Online (Sandbox Code Playgroud)
万一在connect
所有客户端可以并且应该做的是之后服务器出现故障
close(sd) // close socket descriptor (free socket resource)
Run Code Online (Sandbox Code Playgroud)
然后从头开始:
sd = socket(...) // create socket descriptor (allocate socket resource)
...
Run Code Online (Sandbox Code Playgroud)
从头开始:
connect(sd, server-address, ...) // connect to server
...
Run Code Online (Sandbox Code Playgroud)
可能会导致未定义的行为,但至少会导致错误。