C语言 通过对端Socket编程重置连接



我在客户端代码中收到关于连接被peer重置的错误当我调用函数send时来自客户——>服务器。我在网上看了一下,但我不太明白,有人能解释一下是什么触发了这个错误,为什么?

这是客户端套接字的代码。我让它在127.0.0.1上接受一个服务器。 <标题>CLIENT.C h1> 是服务器套接字的代码。它接受来自任何地址(INADDR_ANY)的客户端。 <标题>

SERVER.C h1> div class="one_answers">由peer重置的"连接";就像它的发音一样:"同辈"。(连接的另一端)已关闭连接

通常通过检查套接字是否可读来发现它,并且read(或recv)返回0

如果您不这样检测,而是尝试写入套接字,您将得到您所得到的错误。

如果你得到这个错误(或者以其他方式检测到已关闭的连接),那么你应该关闭你的连接。


您的代码的具体问题是您的check函数只检查错误,而不是其他可能适用的条件(如关闭连接)。

readrecv的返回值保存在一个变量中几乎总是一个好主意,您可以检查显式错误(-1)或关闭连接(0)或数据成功接收(> 0)。

最新更新