中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-01 19:41
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,249 会员排行
DOS开发编程 & 发展交流 (开发室) » wattcp可以编写multicast程序吗?
可打印版本  1,227 / 5
第1楼 sata25 发表于 2006-06-22 11:37
初级用户 发帖 36 积分 110
wattcp可以编写multicast程序吗?
我下载了wattcp实模式的开发包,可找遍了里面的头文件,没有发现multicast的定义,不知道该开发包是否支持传建multicast型的socket,是不是只有该开发包的文档(文档不是免费的)里面才有相关描述呢?
谢谢!
第2楼 asbai 发表于 2006-06-22 12:33
高级用户 发帖 252 积分 653
milticast最棘手的部分应该都在各节点的路由算法上,每个节点都需要为每一个多播地址维护一张表,并且这张表经常要跨越很多节点进行比较复杂的更新。

对于通信双方来说(服务器和客户端),多播好像不需要协议栈实现什么额外的组件。对终端来说通信流程基本与平时一样。

winsock API之所以专门搞出个Multipoint部分,是因为微软扩展了winsock接口的用途,力图使它成为各种通信协议都能使用的通用编程接口。为了能够适应如:ATM、HDLC、ST-II光缆等各种通信协议,winsock必须维护一个胖界面。

不过,如果兄台打算开发的是multicast的client端,由于要在一个组播地址上侦听,IP层还是需要稍稍了解一下游戏规则。要写server端的话就不大用操心这些问题了(这时组播地址是sendto用的)。

wattcp的文档(收费的那种)这个坛子里就有的下,自己search一把。
第3楼 sata25 发表于 2006-06-22 15:30
初级用户 发帖 36 积分 110
多谢指点,我的client端是在dos下,而server是在windows下的服务,server需要通过multicast方式向client端发送数据的。不知道是否client端用wattcp比较妥当,便于后续升级维护。
第4楼 sata25 发表于 2006-06-22 16:10
初级用户 发帖 36 积分 110
找到文档了,谢谢!不过文档中也没有说明是否支持multicast,头文件中也没有说明,照理说multicast应当有个类似AddGroup函数的,开发包中没有,设定TTL也没有,难道有什么技巧或是未公开的东西,还请各位高人指点。谢谢!
第5楼 asbai 发表于 2006-06-22 16:44
高级用户 发帖 252 积分 653
有类似AddGroup这种接口,同时提供其它很多API和选项,实际上是因为Winsock为了让经典socket调用通用化(支持更多协议)而设计的。

经典socket里是不需要有这些胖界面的。client只需要象往常一样bind到组播地址就好了,但因为组播地址不是本机地址,client需要先setsockopt一下,告诉之后的bind这不是一个本机专用地址。

也就是说经典socket里,组播server端不用作任何特别的事情,只要bind到组播地址然后sendto和recvfrom就好了;client端要在平常bind之前设置一下选项,告诉bind以下地址不是本机IP。

wattcp是开源的吧?看以下它的 setsockopt 和 ioctl 这种地方有没有相关选项就应该了了。
第6楼 sata25 发表于 2006-06-23 14:19
初级用户 发帖 36 积分 110
下周我来试试看,谢谢asbai的热心帮助先。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023