系统中有多个网卡。怎么知道winsock收到的数据是从哪张网卡收到的。
系统中有多个网卡。怎么知道winsock收到的数据是从哪张网卡收到的。
以便回复数据,从原来的网卡发出。
问题点数:0、回复次数:15Top
1 楼SupermanKing(人类)回复于 2005-06-04 20:30:35 得分 0
你的概念上有问题,只能是通过IP来处理,不能说哪一块网卡。即使是MAC地址也可捆绑,
当然IP也一样,如果捆绑了网卡,你还可以单独使用一块网卡发数据不就很矛盾吗?所以
单独使用一块网卡的概念是有问题的,而是要理解成IP或是其他的什么地址。如果你想知
道哪一块网卡收到数据,可以这样看,比如你的一个UDP服务,当收到数据是必定可以读出
远程和本地的IP地址,然后可以根据本地的IP地址取得MAC地址,然后在用WMI或API枚举系
统中的网卡,当判断到网卡MAC地址与你获得数据的MAC地址相同的时候就可以将网卡名称
提出来,说明这一块网卡收到了数据。至于发送数据根本就直接把本地IP重新设置一次你
收到数据时的本地IP地址,然后再设置一次远程IP地址,发送就完了。Top
2 楼xiaoHitler()回复于 2005-06-04 21:07:49 得分 0
upTop
3 楼cow_boys(小耳朵)回复于 2005-06-06 01:52:51 得分 0
我在
Winsock1_DataArrival
事件中读
msgbox winsock1.LocalIP
不正确。
读到的IP是我另一张网卡的(不同网段)
Top
4 楼kkmnv(风来了,我走了)回复于 2005-06-06 09:15:03 得分 0
winsock控件可以判断,不同的网卡的信息,好像要用bind方法来帮定到相应的网卡,
我给你在查一下Top
5 楼wumylove1234(毁于随)回复于 2005-06-06 09:17:59 得分 0
怀疑是不是和远程服务器地址有关呢?
关注.Top
6 楼cow_boys(小耳朵)回复于 2005-06-06 15:04:03 得分 0
我主要的用途是UDP的通信,不同网卡(IP)回复不一样的数据。Top
7 楼cow_boys(小耳朵)回复于 2005-06-06 19:32:56 得分 0
up 一下。
Top
8 楼shumjj(一个人)回复于 2005-06-09 15:40:38 得分 0
我想楼主有个误区,你的问题是没有定义好通讯协议。你接受]的数据应该有个协议类型,然后根据这个协议类型来回复而不应该根据ip来回复,当然你可以取得远程的ip,但是建议在协议上做个修改。Top
9 楼mumujwang(木木)回复于 2005-06-09 17:06:21 得分 0
上面的有道理啊,找MAC地址啊,API可以做啊1Top
10 楼cow_boys(小耳朵)回复于 2005-06-10 15:04:33 得分 0
up 一下.Top
11 楼SupermanKing(人类)回复于 2005-06-11 02:57:36 得分 0
当winsock建立服务时,winsock所侦听的是所有本机在同一端口中能侦听到的IP信息,
也就是说,如果你有3块网卡,一个IP是:192.168.1.33,一个是:192.188.100.199,还
还有一个是:137.177.5.66,在这种情况下,决定使用通讯设备的并不是服务端,而是客
户端。比如客户端将RemoteHost设置为:192.188.100.199,那么你服务端读到的LocalIP
将是:192.188.100.199,如果客户端的RemoteHost设置为:137.177.5.66,服务端读到
的LocalIP也就会是:137.177.5.66,所以用winsock控件侦听IP的决定权并不是在服务端。
而是在客户端。如果你想做成像IIS一样可以单独侦听某个IP的某个端口,只能靠API了,
用winsock在服务端想控制侦听的IP是不行的。Top
12 楼wumylove1234(毁于随)回复于 2005-06-11 09:57:55 得分 0
哦.我没有测试,难道我的假想是正确的?
Top
13 楼yassee(甲克虫 - 花开堪折直须折,莫待无花空折枝.)回复于 2005-06-11 16:59:09 得分 0
实在不行,在客户端选择RemoteHost设置时,连通后,把RemoteHost设置的ip发给服务器端,服务器就能区别那个网卡收到数据了。Top
14 楼cow_boys(小耳朵)回复于 2005-06-13 01:08:05 得分 0
to SupermanKing(人类) 大侠
你有没有测试过啊,你说的,我早就测过了。但读出的IP是本地连接的。本地连接2,永远读不到。Top
15 楼SupermanKing(人类)回复于 2005-06-14 01:03:04 得分 0
我说了,控制权在客户端,如果你客户端把RemoteHost设置为你本地连接2的IP呢,
我虚拟了2块网卡,加一个真正的网卡,都没问题。可能你写的不是IP,而是计算
机名吧。Top




