请问::我bind了本地发送UDP消息的端口,为什么每次它还要变?

yydelphi 2005-04-19 02:30:49
struct sockaddr_in clientaddr;

clientaddr.sin_family = AF_INET;
clientaddr.sin_addr.s_addr = htonl( INADDR_ANY );
clientaddr.sin_port = htons( 1288 );

int sockfd;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);

bind(sockfd,(sockaddr FAR*)&clientaddr,sizeof(clientaddr)); //bind本地发送端口
....

sendto(sockfd,Buf,strlen(Buf),0,(struct sockaddr *)&servaddr,sizeof(servaddr));


这样bind了只是第一次发送消息时是用1288端口,以后每次发送都要改变端口。为什么?
正确的bind方式应该是什么?
请大侠们帮帮忙,感激!!
...全文
345 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yydelphi 2005-04-19
  • 打赏
  • 举报
回复
谢谢,最后加了个closesoket(sockfd);解决了这个问题,感谢你。
yydelphi 2005-04-19
  • 打赏
  • 举报
回复
怎么解决这个问题?
我这里面没有循环啊.
谢谢你
constantine 2005-04-19
  • 打赏
  • 举报
回复
bind一次就行了,不要多次bind,因为端口已经被使用了,所以是不能再给你使用的

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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