请教:双网卡连接不同局域网,如何向两个网卡(网络)同时发送广播,并与回复的机器通讯?

shield0771 2007-05-08 09:35:40
双网卡连接不同局域网,如何向两个网卡(局域网)同时发送广播,并对两个网络中机器的回复进行应答?

如果以上方案不好实现,能否查出本机上有几个网卡和它们的IP地址,起码可以让用户可以选择使用哪张网卡进行通讯?

对双网卡机制和多网卡下使用SOCKET不是很了解,希望大家能帮帮忙,如果能说明下大概原理最好,非常感谢!
...全文
1295 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shield0771 2007-05-14
  • 打赏
  • 举报
回复
非常感谢^^
抱歉,上不了网,所以结得晚一点了
wxgwxgwxg 2007-05-12
  • 打赏
  • 举报
回复
mark
wzd24 2007-05-12
  • 打赏
  • 举报
回复
楼主还没解决吗??
shield0771 2007-05-11
  • 打赏
  • 举报
回复
非常感谢,我马上去弄弄,解决了立即结帖
BookSirSwordsMan 2007-05-11
  • 打赏
  • 举报
回复
想说,被楼上的抢了,哈哈
wzd24 2007-05-11
  • 打赏
  • 举报
回复
这样应该可以,呵呵…………
我还以为楼主就不管了呢!

其实你只要在Socket上绑定IPAddress.Any就可以向两个网络的任何一个网络广播。这样你就只要在一个Socket上对两个局域网分别广播一次,这样做的前提是两个局域网要在不同的IP段内。如:
网络A在192.168.0.X,网络B在192.168.1.X。
两次广播地址分别为:192.168.0.255,192.168.1.255。
这样应该可以的!
shield0771 2007-05-11
  • 打赏
  • 举报
回复
最近两天稍微看了下资料,感觉多路广播的方式可能不适合我这个项目,个人理解多路广播是可以经过多个路由器转发的广播,但如果两个局域网络没有其他物理连接(路由器),好象就没有办法了.......或者是我的理解有问题?

感谢wzd24(牧野),想再询问下,找到本机多个IP后,是不是将各个网卡IP分别绑定到不同的SOCKET发送和接收,即可实现多网卡通讯?

最近上网困难,可能我的回复和给分会比较迟,希望大家见谅,感谢各位的帮忙
xiaoyue520 2007-05-08
  • 打赏
  • 举报
回复
mark
蒋晟 2007-05-08
  • 打赏
  • 举报
回复
http://www.codeproject.com/cs/internet/multicast.asp
alldj 2007-05-08
  • 打赏
  • 举报
回复
在每个客户端里都放个windows服务,用于传本机ip到服务器,服务器里建一个列表,用于存放IP地址。每次要发消息到客户端时直接循环一下就行了,通过哪个网卡是不必考虑的,机器自己就会选择。客户端回复消息也是同理,获取了客户端IP自然就能应答。
wzd24 2007-05-08
  • 打赏
  • 举报
回复
绑定IPAddress.Any应该可以。
wzd24 2007-05-08
  • 打赏
  • 举报
回复
System.Net.IPHostEntry ipHostInfo = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
获取当前主机的所有IP地址,包括:127.0.0.1
shield0771 2007-05-08
  • 打赏
  • 举报
回复
TO:wzd24(牧野)
感谢你的回答,不过我说说我的理解,我查过MSDN里面的Socket.Bind 方法:
——————————————————————————————————————
如果您不介意分配哪个本地地址,则可以用 IPAddress.Any 作为地址参数创建一个 IPEndPoint,这样,基础服务提供程序将会分配最适合的网络地址。如果您有多个网络接口,这将有助于简化您的应用程序。
——————————————————————————————————————
就我的理解,使用IPAddress.Any 的话,应该是在多个网卡中分配一个发送,而不是两个网卡(局域网)同时发送,实际测试也没有成功,是否是我的设置有问题呢?

TO:alldj(灵山妖姬)
感谢你的方案,不过我手头上的项目已经不可能做如此大的修改了,还是希望能找到一个服务器端就能解决的方案

TO:jiangsheng(蒋晟.Net[MVP])
是采用多路广播吗?呵呵 我对这块不大了解,我先去看看资料 非常感谢
1.linux系统介绍 以windows为内核的操作系统有哪些:win10   win8   win7  xp  系统    windows server 以linux为内核的操作系统有哪些:centos  ubuntu  debian   windows和linux  linux:服务器   安全    稳定 高效    windows:办公  家用  2.安装linux注意事项 对centos系统 的基本使用   有哪些文件夹   对文件/文件夹 进行操作  创建 删除  修改 移动 复制   写入 home 存放所有用户文件的根目录  soft :安装软件 cd  ll mkdir 创建文件  touch 空文件  echo sdsd>a.txt       vi a.txt vi c.txt  打开文件  按下i键  改为写入的模式    写完之后保存: 先按下esc 按键再按下:w 保存 :q退出  :wq    写完之后不想保存 强制退出  esc  :q! 删除文件/文件夹 rm -rf a.txt  b.txt rm -rf soft 复制 如果复制文件 cp  要复制的文件名   复制出来的文件名子    cp  a.txt   a1.txt 如果复制的是文件夹的 cp -r soft/   soft1 展示一个文件中的内容 cat  移动文件  mv  temp1   temp2 重命名 mv  temp1   temp2 查找: find /(查找的路径)  -name   *.txt    b 清屏  clear tab 按键 可以帮助我们把输入的内容补全   3.配置局域网  需要通过ssh软件远程操作linux系统 远程操作centos系统  在windows操作系统中通过一款软件来远程操作虚拟电脑中的centos系统  ssh软件: xshell  secureCRT 第一步在win10系统中下载并且安装ssh软件 secureCRT    第二步:只要知道centos系统所在电脑的公网IP  登录账户和密码      /  win10和centos系统所在的两台电脑在同一个局域网内  局域网IP  登录账户和密码 第三步:centos系统 进行局域网的设置 往网卡中写入一些数据   win10写入的方式:桌面的化操作和centos系统写入的方式是不一样的  ip 网关 子网掩码 NM_conteolle。。。 命令  找到往网卡写入数据的文件    重新启动网络服务 开启22端口   重启防火墙服务 网络桥接网络  *************************端口是否开启  4.配置外网  下载软件1.下载并且安装到系统中 node.js环境   npm install bootstrap   默认的镜像库 centos系统    yum install  服务名     默认的镜像库  2.自己下载服务  wget 服务的网络地址 自己单独安装  比较灵活 安装难度大 windows系统  exe文件 linux       rpm包

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧