CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

如何使用winsock对局域网内进行广播?

楼主superzxf(superzxf)2001-08-27 14:33:14 在 VB / 基础类 提问

帮帮忙!分数不多,事后再补  
  问题点数:60、回复次数:30Top

1 楼jimgreen(可可怜)回复于 2001-08-27 15:40:20 得分 0

tell   me   tooTop

2 楼jimgreen(可可怜)回复于 2001-08-27 15:44:58 得分 0

everestone@263.netTop

3 楼QQRN(笨QQ-馊主意提供者)回复于 2001-08-27 16:03:51 得分 0

tell   me   too    
  QQRN@SINA.COMTop

4 楼superzxf(superzxf)回复于 2001-08-28 17:27:43 得分 0

没人会吗?Top

5 楼snakeegg(蛇蛋)回复于 2001-08-28 17:31:03 得分 0

把winsock控件的remotehost属性设成***.255.255.255就可以了  
  其中***是所你在子网的ip的第一个字段  
  Top

6 楼superzxf(superzxf)回复于 2001-08-28 19:06:42 得分 0

我试过了,系统提示本地机上的地址不可用  
  Top

7 楼snakeegg(蛇蛋)回复于 2001-08-28 19:11:55 得分 0

不可能的,是不是端口或者其它设的有问题,把代码贴来我看Top

8 楼hydnoahark(诺亚方舟)回复于 2001-08-28 19:13:10 得分 0

主机部分全1的地址为你的广播地址  
  Top

9 楼snakeegg(蛇蛋)回复于 2001-08-28 19:22:15 得分 0

不用全1也行,我那时就从最后一个段开始试,一个255和两个255都不行,到三个255时就好使了  
  在完成同样功能的情况下,还是缩短广播范围的好Top

10 楼pp616(坏蛋)回复于 2001-08-28 20:02:45 得分 5

在一个循环中循环ip地址就可以了。用udp协议很快的。我有示例代码你要的话可以和我联系。  
  我的email:chinazmz@china.comTop

11 楼superzxf(superzxf)回复于 2001-08-28 20:15:33 得分 0

'server  
  private   sub   form_load()  
          winsock1.protocol=sckudpprotocol  
          winsock1.remotehost="192.255.255.255"  
          winsock1.remoteport=8888  
          winsock1.bind  
  end   sub  
   
  Private   Sub   Command3_Click()  
          Winsock1.SendData   "HELLO"  
  End   Sub  
   
  'client  
  private   sub   form_load()  
          winsock1.protocol=sckudpprotocol  
          winsock1.localport=8888  
          winsock1.bind  
  end   sub  
   
  Private   Sub   Winsock1_DataArrival(ByVal   bytesTotal   As   Long)  
  Dim   s   as   string    
          Winsock1.GetData   s  
          MsgBox   s  
  End   Sub  
   
   
  客户端没有收到任何数据  
   
  Top

12 楼hydnoahark(诺亚方舟)回复于 2001-08-28 20:46:39 得分 5

>>winsock1.remotehost="192.255.255.255"  
  你确定你的网络的广播地址是192.255.255.255???  
  你本机的IP地址是什么?  
  Top

13 楼superzxf(superzxf)回复于 2001-08-28 20:53:07 得分 0

本机ip为192.168.168.1  
  子网掩码255.255.255.0  
  Top

14 楼snakeegg(蛇蛋)回复于 2001-08-28 21:25:24 得分 0

你的代码好用啊,在我机器通过了  
   
  你的ip设的是局域网的吧,可不是你上internet的ip啊  
  Top

15 楼snakeegg(蛇蛋)回复于 2001-08-28 21:28:47 得分 0

192.168.168.1是你在2000下做共享时的ip,不是你在LAN上的真正ip,错误在这里!!!!!Top

16 楼superzxf(superzxf)回复于 2001-08-28 21:31:56 得分 0

本机只有一个ip地址,没有和internet连接  
  Top

17 楼snakeegg(蛇蛋)回复于 2001-08-28 21:33:34 得分 0

那个192.168.168.1不是你机器真正的ip.是假的Top

18 楼blow_jj(阿俊)回复于 2001-08-28 21:37:02 得分 0

这个问题我也不太懂,我来学习一下:)请大家多多指教!Top

19 楼superzxf(superzxf)回复于 2001-08-28 21:37:34 得分 0

我用ipconfig看到的也是该地址呀  
  而且在server端的remotehost设成客户端的地址也可以发送成功  
   
  Top

20 楼snakeegg(蛇蛋)回复于 2001-08-28 21:40:39 得分 0

你去网上邻居里找找,那里的ip才是真的Top

21 楼superzxf(superzxf)回复于 2001-08-28 21:43:57 得分 0

都查过了,没错Top

22 楼superzxf(superzxf)回复于 2001-08-28 21:48:29 得分 0

终于成功了,但不知道为什么  
  remotehost设为  
  192.168.168.255   成功  
  192.168.255.255   不成功  
  192.255.255.255   不成功  
  255.255.255.255   成功  
  Top

23 楼blow_jj(阿俊)回复于 2001-08-28 21:49:38 得分 0

upTop

24 楼snakeegg(蛇蛋)回复于 2001-08-28 21:50:55 得分 0

这样和你说吧,192.168.168.1是2000下的一个特殊ip,当你设成它之后,其它机器就可以共享你的资源一起上网.  
  我这没有2000,具体情况记不清了,那你再运行一下ipconfig,看仔细了,里面是不是有两个ip呢  
  要是有的话,另一个就是真的.  
  问题肯定出在这里,要么你在看一下你网关的地址是多少,换成那个试试Top

25 楼superzxf(superzxf)回复于 2001-08-28 21:59:40 得分 0

把发送程序修改如下  
  Private   Sub   Command3_Click()  
  ON   ERROR   goto   er  
          Winsock1.SendData   "HELLO"  
          exit   sub  
  er:  
          msgbox   "error:"   &   err.Description  
          resume   next  
  End   Sub  
   
  第一次发送总会捕获到一个错误,错误信息为空,而且可以成功发送  
  Top

26 楼superzxf(superzxf)回复于 2001-08-28 22:02:18 得分 0

win98se和win2k下的internet连接共享的特殊ip好像应该是192.168.0.1  
  我把ip改为192.168.168.253问题依旧  
  我没有设任何的网关,dns,wins  
  Top

27 楼snakeegg(蛇蛋)回复于 2001-08-28 22:08:36 得分 20

对,那个好象是192.168.0.1,我可能记错了,不好意思啊     ^_^  
  不过我还是觉得你那边的ip有些怪怪的,呵呵  
   
  你捕捉到的那个错误可能是这样的,因为你对整个网络发广播,你的本地机也是其中一个,但它的端口已经被占用(既做发送端口又做接收端口了),所以出了个错Top

28 楼gdjacky(华英雄)回复于 2001-08-28 22:24:17 得分 20

因为你的网络掩码是255.255.255.0,所以决定你的IP地址里头的网络地址为192.168.168,主机地址为最后一个数。因此当你用192.168.255.255或192.255.255.255都不会成功的,因为这两个IP地址的网络部分分别为192.168.255和192.255.255,不是在你的网络中(192.168.168);而255.255.255.255是一个本地广播地址,用于向本地网络中的所有主机发送广播消息,其效果与用192.168.168.255一样。  
  Top

29 楼superzxf(superzxf)回复于 2001-08-28 22:24:59 得分 0

我是想截获其他程序发出的广播分组  
  我单位电脑上安装有一套软件,该软件采用服务器端的加密方式(在服务器端以服务方式运行一个程序),客户端和该程序建立连接,得到软件的授权信息。  
  我启动服务器上的程序后,用netstat   -a发现该程序监听两个端口(一个tcp,一个udp),我估计该程序使用udp协议接收客户机寻找服务器的广播,然后发送该程序所在机器的地址,客户端接收该数据后便和服务器端建立一个tcp连接进行以后的操作。  
  我想用我的程序替换该服务器程序,接收客户机的广播分组,但没收到任何东西:-(  
  Top

30 楼snakeegg(蛇蛋)回复于 2001-08-28 22:42:34 得分 10

关于广播,你该知道的也都知道了  
  剩下的也实在帮不了你什么了  
  估计还是你那ip地址的事  
  再仔细思考思考,是不是哪个细节搞错了,祝你成功!!!!  
  Top

相关问题

  • 在局域网中, 使用 SOCKET编程,如何广播消息???
  • 请问使用什么技术可以方便实现局域网广播.最好有例子!
  • 如何用UDP在局域网广播
  • 局域网上怎么发广播啊
  • SOS!局域网广播IP组问题
  • 请教局域网中广播问题?
  • 怎样在局域网内使用OutLook?
  • 局域网打印机的使用???
  • 局域网打印机使用问题
  • WebService可否在局域网中使用

关键词

  • winsock
  • ip
  • 服务器
  • 代码
  • 客户
  • 连接
  • 软件
  • 网络
  • winsock1
  • 广播

得分解答快速导航

  • 帖主:superzxf
  • pp616
  • hydnoahark
  • snakeegg
  • gdjacky
  • snakeegg

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo