在不知道套接字的情况下关闭网络连接
Closing a network connection without knowing the socket
我正在尝试找到一种方法来关闭由另一个进程建立的网络连接。我的应用程序将自动运行一整夜。如果网络资源已经在使用中(不应该使用,但我不假设(,我需要在使用正确的凭据建立连接之前关闭连接。同样,不假设现有连接具有正确的访问权限。
使用 GetTcpTable(( 我可以在现有连接中搜索 IP。现在我需要关闭它。我可以找到很多关于根据套接字关闭连接的信息,但我不知道套接字。我能否找出给定连接(基于远程 IP(使用了哪些套接字?(,或者是否有其他方法可以基于远程 IP 关闭网络连接?
在注释的帮助下,我整理了以下功能。请注意,在 Windows Vista 及更高版本上使用 SetTcpEntry 需要管理员权限。虽然这回答了上面的明确问题,但我仍在寻找一种与用户无关的解决方案。
// Fuction to close a collection of network connections
void networkConn::CloseRemoteIP(std::vector<MIB_TCPROW>& rows) {
for (MIB_TCPROW tcpObject : rows) {
tcpObject.dwState = MIB_TCP_STATE_DELETE_TCB;
DWORD ret = SetTcpEntry(&tcpObject);
if (ret) {
printf("nError closing TCP connection. Windows returned: %lu", ret);
}
}
}
相关文章:
- 在不知道套接字的情况下关闭网络连接
- 是否有 Windows 用户空间函数来枚举连接的网络共享?
- 在没有管理员权限的情况下连接到同一网络中的命名管道
- 为什么我们应该为网络连接指定一个端口?
- 多个网络连接的线程与异步 I/O
- 我正在尝试在树莓派中连接两个网络摄像头
- 用于服务网络连接的英特尔TBB任务 - 良好的模型
- 黑莓级联中的网络连接检查 10.
- 正在检测网络连接
- 如何使用 cURL 检查网络连接
- 如何使用C++在 Windows XP 中重新启用已禁用的网络连接
- 列出所有网络连接,然后管理一个
- 通过网络连接将数据从c#发送到非托管c++
- winsock - recv -网络连接问题
- 使用批处理重新启动 c++ 控制台应用程序不会关闭网络连接
- c++中的网络连接
- Android网络连接.可以写数据,但不能读数据.使用QT服务器
- 如何在qml上检查网络连接?
- 如何确定网络连接正在使用哪个端口?
- 如何通过网络连接查看真实日期