返回信息流看了师兄留下的一段源代码,写了一个UDPManager的类,里面UDP接收使用的是recv而不是recvfrom,请问可以这样吗,如果行的话还要有什么需要注意的
这是一条镜像帖。来源:北邮人论坛 / cpp / #36546同步于 2010/3/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
socket UDP通信方式中使用recv接收
zjxpsetp
2010/3/12镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
recvfrom比recv就多了一个获取地址的功能吧,其它的好像都一样。没什么不行的,不过我觉得形式上还是用recvfrom,容易看些,真不想要地址应该设null。
我觉得之所以udp要用recvfrom就是因为udp没有连接,所以接收的时候需要专门的参数来获取发送方的地址
【 在 hby720 的大作中提到: 】
: 这个要看你udp是否connect,
【 在 hutaow 的大作中提到: 】
: 我觉得之所以udp要用recvfrom就是因为udp没有连接,所以接收的时候需要专门的参数来获取发送方的地址
但是不是说你不可以做,如果你要用recv,就要connect,但是connect不会形成三次连接,一般使用的时候是基本不这么做的。。
【 在 hby720 的大作中提到: 】
: 这个要看你udp是否connect,
奥 在udp之前这里先建立了一个tcp socket,用于双方进行命令的通信,数据的传输使用udp,这样用recv就没有问题了吧
刚查了一下还真是,也就是说udp也可以用connect(是不是只有在winsocket里才能用connect?),学习了[em68]
【 在 hby720 的大作中提到: 】
: 但是不是说你不可以做,如果你要用recv,就要connect,但是connect不会形成三次连接,一般使用的时候是基本不这么做的。。
As long as you "connect"ed.
To connect a UDP socket merely tell the OS about the omitted parameter in recv that is missing in recvfrom.
【 在 hutaow 的大作中提到: 】
: 刚查了一下还真是,也就是说udp也可以用connect(是不是只有在winsocket里才能用connect?),学习了
不是的,都是可以的,机制是一样的