UDP接受端如何确定是谁发过来的数据?端口,还有其他的吗?

abcbit 2003-10-28 08:26:23
先看看我的一个例子
用的是CAsyncSocket类
发送端:
m_SendSocket.Create(0, SOCK_DGRAM, 0)
//这里没指定是发给哪个端口
m_SendSocket.SendTo(strMessage, nSize, (SOCKADDR*)&m_saHostGroup, sizeof(SOCKADDR), 0)

接受端:
//创建的时候指定了接受端口
Create(7500, SOCK_DGRAM, FD_READ)
//接受数据,这样也是可以的
Receive(m_strBuffer,sizeof(m_strBuffer))
//当然也可以这样的,根据端口号再做判断
ReceiveFrom (m_strBuffer, sizeof(m_strBuffer), m_strSendersIP, m_nSendersPort)

我想知道,为什么用Receive()接受数据也是正确的,更何况发送数据的时候就没指定到接受端的端口号7500。
是不是还有什么判断信息隐藏了?

还有要说明的一点,我的这个程序是多播的例子,但我想多播也是UDP的变种呀。
不解?



...全文
339 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
abcbit 2003-10-29
  • 打赏
  • 举报
回复
对呀~
我白痴了

那还是标记端口号了。 多谢!
Fly1980 2003-10-28
  • 打赏
  • 举报
回复
在"m_SendSocket.SendTo(strMessage, nSize, (SOCKADDR*)&m_saHostGroup, sizeof(SOCKADDR), 0)
"里的m_saHostGroup标示了接收端的IP和端口.

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧