本机有多个ip 怎样指定某一ip向 HTTP 服务器发送数据和接收响应
Bind(ip)
单独的绑定ip不行,因为windows默认只有一个ip在上网,两个socket绑定不同的ip来上网,其中有一个会报错
@CXY_Lin: 你有测试过吗?假设有两块网卡,A 的 IP 为 192.168.0.1,B 的 IP 为 192.168.0.2,创建 SOCKET 后, bind(192.168.0.1),然后 Connect。
还是你说的 IP 是客户机的公网 IP?
@Launcher: 对啊,两个ip不是同一个段的例如下图:
我要创建多个socket,并且绑定不同的ip,但只哟一个ip,可以用,其他的都报错
@CXY_Lin: 你只有一块网卡,bind 方法的解释你可以看下 msdn,你别把 socket 编程中的概念搞混淆了。ip 包总是从 192.168.1.35 这块网卡出去的,跟你上面两个拨号连接没有关系。
在你的机器上,无需单独 bind,而是看哪个拨号连接可用。也就是说,要实现你得需求,只需要断开其中一个拨号连接就行。
@Launcher: 我是需要多个ip,同时拨号上网,请问大神,有其他方式可以实现吗?
@CXY_Lin: 你给机器装个双网卡试试,两个拨号各使用一块网卡。
@Launcher: 不要使用ppp拨号上网的方式,是一样的,现在遇到的问题是,不管怎样,都只有一个ip可以拨号,其他ip不行。有没有其他方式可以,绕个弯,实现这种功能。
@Launcher:要使用ppp拨号上网的方式,不是网卡,现在遇到的问题是,不管怎样,都只有一个ip可以拨号,其他ip不行。有没有其他方式可以,绕个弯,实现这种功能。
@CXY_Lin: 双网卡,没双网卡不行。每个拨号连接会绑定到一块网卡,如果你只有一块网卡,那么就只有一个拨号连接。就假设不拨号,连接小区宽带,你把邻居那条线也拉过来了,那么你需要两块网卡,一个块网卡插一条宽带线。
@Launcher: 如果我要同时实现32个拨号,咋办呢
@CXY_Lin: 32块网卡。
@CXY_Lin: 不是这样的,我们是写一个程序,操控32个硬件来实现访问http,但硬件是使用windows自带的拨号功能。
@CXY_Lin:或者你就需要这样: http://blog.csdn.net/szss2a/article/details/11247603
@CXY_Lin: 我的意思是每个拨号会占用一块网卡,你有 32 个硬件,如果你需要 32 个硬件同时都能拨号成功,除了使用 32 块网卡以外的解决办法就是 http://blog.csdn.net/szss2a/article/details/11247603.
@CXY_Lin: 你可以自己搜索下下列关键字:ROS 单网卡 拨号
@Launcher: 如果是,拨号和访问http的功能都需要,我们用C#语言自己来实现呢
@CXY_Lin: 这还涉及不到 HTTP 的问题,而是在网卡与外部设置之间建立物理链路。你需要写一个软件路由功能模块,会很困难。请查阅下 ROS 的功能。
@Launcher: 说实话,现在的思路,的确不清晰,一切都还在探索中,真诚的感谢您在百忙之中的回答。