首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将HTTP连接绑定到特定适配器(提示:计量连接)

将HTTP连接绑定到特定适配器(提示:计量连接)
EN

Stack Overflow用户
提问于 2016-08-17 17:40:59
回答 1查看 299关注 0票数 0

Windows8和更高版本有建立Wi-Fi (和其他)连接的设置,以进行计量(并附加了费用,但在这里无关紧要)。我已经使用Native Wi-Fi APIWCM APIs来查找所需的信息。

使用套接字,可以绑定、选择性地发送和忽略来自/到计量连接的传入数据包。但是,如何使用WinHTTP API(https://msdn.microsoft.com/en-us/library/windows/desktop/aa384257(v=vs.85%29.aspx)?)实现这一点

关于StackOverflow和SuperUser的一些答案建议使用ForceBindIP,但我们不能简单地使用它。

如果MS Windows已经实现了计量连接,理想情况下应该有一些方法来指示WinHTTP服务不使用特定的连接。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-20 05:49:11

不幸的是,WinInet和WinHTTP本身都不支持您所要求的内容。

您可能不得不求助于使用WinHTTP bind()函数来手动将WinInet/WinHTTP会话套接字绑定到所需的网络连接。

在Windows7之前,您可以通过使用带有INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO选项的InternetQueryOption()HINTERNET句柄获取SOCKET句柄。它用有关连接的信息填充INTERNET_DIAGNOSTIC_SOCKET_INFO结构,包括实际的SOCKET句柄。

但是,Windows 7及更高版本不再支持此选项。虽然可以通过一些额外的工作手动跟踪SOCKET句柄,但我认为这不会对您有任何好处。套接字在尝试连接到服务器之前需要与bind()绑定。WinInet/WinHTTP提供的可用于查找SOCKET句柄的相关信息在连接尝试进行之前不可用。在连接之前,该信息还不在TCP路由表中。并连接了一个套接字,重新绑定套接字就太晚了。

所以我认为你在这件事上不走运,除非/直到微软公开一个新的API来支持绑定WinInet/WinHTTP会话,或者以其他方式再次公开对SOCKET句柄的访问。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38993073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档