shuaishuai2599 发表于 2011-11-18 15:44:49

关于UDP的接受

本人在UIP协议栈下已能进行UDP的收发,但有个问题想请教大家。现在在初始化UDP的时候,已经绑定固定的主机地址,那么,是否就说明UDP值能从固定IP、端口的主机接受UDP消息呢。如果我想接受多个主机的消息,那我该怎样去设置呢。谢谢大家!

gzr_2011 发表于 2011-11-18 22:44:23

。。。。。。。

shuaishuai2599 发表于 2011-11-19 23:39:10

不会吧,大家都说说话啊!!!高手说话啊!帮帮我啊

shuaishuai2599 发表于 2011-11-20 20:51:01

怎么还是没有人说话呢?顶起来,要不就沉下去了!

albert_w 发表于 2011-11-20 22:18:38

好像是绑定0.0.0.0: 端口.前提你单个主机有多个IP地址
所谓绑定是绑定自己的IP地址吧,表示在这个IP的这个端口监听

pt001 发表于 2011-11-20 23:06:01

用广播的方式.

pt001 发表于 2011-11-20 23:07:28

另外,你要接收多个主机的消息,看起来你的机器充当的是服务器啊.

shuaishuai2599 发表于 2011-11-21 14:56:33

楼上能说说具体的实现方法吗?

pt001 发表于 2011-11-21 16:11:42

广播数据包的原理:
专门用于同时向网络中所有工作站进行发送的一个地址叫做广播地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址。如果你的IP为:192.168.1.39,子网掩码为:255.255.255.0,则广播地址为:192.168.1.255;如果IP为192.168.1.39,子网掩码为:255.255.255.192,则广播地址为:192.168.1.63。

如果只想在本网络内广播数据,只要向广播地址发送数据包即可,这种数据包可以被路由,它会经由路由器到达本网段内的所有主机,此种广播也叫直接广播;如果想在整个网络中广播数据,要向255.255.255.255发送数据包,这种数据包不会被路由,它只能到达本物理网络中的所有主机,此种广播叫有限广播。
广播数据包的原理:
专门用于同时向网络中所有工作站进行发送的一个地址叫做广播地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址。如果你的IP为:192.168.1.39,子网掩码为:255.255.255.0,则广播地址为:192.168.1.255;如果IP为192.168.1.39,子网掩码为:255.255.255.192,则广播地址为:192.168.1.63。

如果只想在本网络内广播数据,只要向广播地址发送数据包即可,这种数据包可以被路由,它会经由路由器到达本网段内的所有主机,此种广播也叫直接广播;如果想在整个网络中广播数据,要向255.255.255.255发送数据包,这种数据包不会被路由,它只能到达本物理网络中的所有主机,此种广播叫有限广播。

使用UDP协议发送、接收广播包的过程。
假如我们要向192.168.0.X,子网掩码为:255.255.255.0的子网中发送广播包。

其步骤如下:

1.       初始化socket库。

2.       创建SOCK_DIRAM类型的Socket。

3.       设置Socket的属性允许其广播。

4.       发送数据包到192.168.0.255

5.       接收自己广播的广播包。

6.       关闭Socket

7.       释放网络库。

注意事项如下:

1.       接收方一定要知道广播方的口号,然后绑定此端口号才能正确接收。

2.       接收方的Socket不需要设置成广播属性。

3.       绑定的IP不可以使用“127.0.0.1”,可以使用真实IP地址或者INADDR_ANY。否则接收失败。


来自于网络

shuaishuai2599 发表于 2011-11-23 17:03:33

好的,谢谢楼上的,谢谢!

frank2012 发表于 2012-1-17 19:45:09

学习了
页: [1]
查看完整版本: 关于UDP的接受