中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 20:46
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » wattcp可以编写multicast程序吗? 查看 1,228 回复 5
楼 主 wattcp可以编写multicast程序吗? 发表于 2006-06-22 11:37 ·  中国 江苏 南京 电信
初级用户
积分 110
发帖 36
注册 2006-03-29 19:21
20年会员
UID 53009
性别 男
状态 离线
我下载了wattcp实模式的开发包,可找遍了里面的头文件,没有发现multicast的定义,不知道该开发包是否支持传建multicast型的socket,是不是只有该开发包的文档(文档不是免费的)里面才有相关描述呢?
谢谢!
2 发表于 2006-06-22 12:33 ·  中国 上海 杨浦区 电信
高级用户
★★
积分 653
发帖 252
注册 2006-04-16 19:48
20年会员
UID 53939
状态 离线
milticast最棘手的部分应该都在各节点的路由算法上,每个节点都需要为每一个多播地址维护一张表,并且这张表经常要跨越很多节点进行比较复杂的更新。

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

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

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

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

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

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

wattcp是开源的吧?看以下它的 setsockopt 和 ioctl 这种地方有没有相关选项就应该了了。
6 发表于 2006-06-23 14:19 ·  中国 江苏 南京 电信
初级用户
积分 110
发帖 36
注册 2006-03-29 19:21
20年会员
UID 53009
性别 男
状态 离线
下周我来试试看,谢谢asbai的热心帮助先。
论坛跳转: