Med*_*ine 2 c sockets network-programming tcp client-server
读取调用上的客户端块等待读取n个字节.
服务器写入n个字节并立即关闭连接.
如果在读取完成之前套接字关闭或由于某些其他问题,在这种情况下可以读取调用返回负数或零吗?(在这种情况下,客户端/服务器在同一个Linux机器上运行)
我正面临这样的情况但不确定这在TCP/IP子系统中是如何工作的以及如何解决它.
Sever:
write
close
Client:
read
close
Run Code Online (Sandbox Code Playgroud)
关闭套接字连接的安全方法是首先调用shutdown来表示您不会写入,继续读取远程端发送的数据,然后关闭读取端并关闭套接字.如果在读取发送给您的数据之前关闭套接字,操作系统将重置连接(发送设置了RST标志的数据包),远程端将此解释为错误.