winsock,如何发送RST,ACK或RST数据包

时间:2016-11-05 21:06:56

标签: c++ winsock

我有一个使用WSAECONNRESET的winsock服务器,错误代码为10054事件。我可以使用exit()函数执行此操作,但之后我必须重新启动我的应用程序。

问题是如何终止已建立的连接并将第一个数据包发送到我的服务器,因此它与我使用exit()但不使用它时发生的过程完全相同。所以我的应用程序必须继续运行,但它必须终止与RST数据包的连接。基本上我想模仿CTRL + C,或者退出()或终止()进程,以便发送RST数据包。

我试过了 SO_LINGER套接字选项与socketclose();和shutdown();但它不会导致WSAECONNRESET事件。

1 个答案:

答案 0 :(得分:1)

  

我尝试了SO_LINGER套接字选项

您需要将其设置为“打开”,并且超时为零。

  

socketclose();

结合使用

正确。

  

shutdown();

不正确的。删除它。它发送一个FIN。

  

但它不会导致WSAECONNRESET事件。

由于shutdown()。删除它。