怎样用SOCK_DATAGRAM的 socket实现点到点的连接?

Token 2002-07-03 10:47:06
一个做server,另一个做client,server应该要bind一个端口吧。但是我试了却在server收不到client发过来的数据报。没有网络故障的。因为把它设为广播模式就可以收到。不知道哪里除了问题。另外,可以实现双方互发数据报吗?是不是双方都要bind端口?
...全文
25 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
guten 2002-07-08
  • 打赏
  • 举报
回复
可以采用connect函数来实现UDP下两个IP之间的点到点的连接。
当在UDP套接字上调用connect时,UDP协议仅在这个套接字中记录通信另一方的IP地址和端口号,然后connect立即返回。
调用了connect的UDP套接字称为连接UDP套接字。
Token 2002-07-04
  • 打赏
  • 举报
回复
如果不绑定端口号的话,那一个IP地址岂不只能开一个UDP服务?sendto()函数不指定发送给哪个端口行吗?而且好像UDP协议也有使用端口号的。甚至同一个端口号可以分别开一个TCP和UDP服务。
thor 2002-07-03
  • 打赏
  • 举报
回复
看你所用的数据报方式是用1.0版或者以上至2.0版的。如果使用CAsyncSocket成员函数Receive(),可以不用bind,但要使用Create()函数初始化。如果使用CSocket的socket(),则需要绑定。绑定后,如果使用receive()函数接受数据,需要指定端口和对方计算机地址,如果使用recvfrom()函数接收数据,需要创建一个接受套接字的地址。
xuying 2002-07-03
  • 打赏
  • 举报
回复
sock_datagram需要用udp协议,不用bind端口。使用sendto()和recvfrom()来发送和接收。

先看看这本书,讲的比较系统:<tcp/ip网络互联技术 卷III>winsock版

4,373

社区成员

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

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