Winsock问题(50分)

C

cookey

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位网络高手,
winsock传送信息都需要ip地址, 有没有像 MailSlot那样发出一个信息,同在一个网络的计算机都能收到?
 
用广播。
 
请问怎么广播?
 
用TMNDUP控件实现广播。
首先要计算LocalIP,判断当前是几类网。
然后根据计算出的网络类型把Remote ip写成符合此类型的广播地址。
(查有关书籍)
广播传送只能用在局域网上,Internet不可用,会引起广播风暴。

 
hehe, 广播风暴比较新的交换机都不会发生.
不过一般只有交换机支持才能出子网广播.
 
有例子吗?
 
Delphi自带的TNMUDP例子无法做到广播,只能点对点传送,不知道怎样才能让她广播
 
cytown & Jetideas:

工作站不需要客户端程序吗?
 
有例子的。我编了一个网络象棋游戏,在局域网玩时就用到广播。
你可以到 http://www.pchome.net 中‘游戏专区’小游戏9月份中
下载,名字叫Chess2000Beta2。
不知会不会对你有帮助?
 
ada, 当然需要了, 客户端程序要接收广播信息然后进行分析处理:)
 
只要目的IP地址的HOST为255即可:
如:NET。NET。NET。HOST
213。23。1145。255
 
to cookey : IP只需设成 255.255.255.255
IP 0.0.0.0 表示本地机
255.255.255.255 表示同网络上的其他计算机(用来广播)
不过好象winsock提供了广播的函数,不过我忘了.可以帮你查一下
 

使用SOCKET 函数建立数据包套接字 SOCKET(AF_INET,SOCKET_DGRAM,0)
使用BIND 函数捆绑地址与套接字
使用函数 SETSOCKOPT 将套接字设置为可广播
SETSOCOPT 说明为
function setsockopt(s: TSocket; level, optname: Integer; optval:
PChar;optlen: Integer): Integer; stdcall;
level :=SOL_SOCKET
optname:=SO_BROADCAST
optlen:=sizeof(optval)
 
接受答案了.
 
顶部