又遇到了一个问题,请教各位高手

sunnysab 2013-08-23 01:04:46
由于接收组播地址的消息需要使bind的端口和组播的端口相同,但是问题是那个端口被其他程序占用了,哪位大侠能够想想办法?占用端口的程序不能关。
我想重用这个端口,但是这需要套接字句柄,具体如何实现?

    for( ; Socket <= 2000; Socket++ )
{
SOCKADDR_IN SockInfo;
int len = sizeof(SockInfo);
int ret = 0;

ret = getsockname( Socket, (struct sockaddr *)&SockInfo,&len);
if( !ret )
{
if( SockInfo.sin_port == findport )
{
printf( "Socket = %d\n", Socket );
goto end;
}
}
}

但是ret总是为-1啊!另一个帖子上有人说,getsockname()必须在Socket连接上去才能成功调用……另外,端口重用可以吗?
...全文
197 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunnysab 2013-08-23
  • 打赏
  • 举报
回复
顶! 不会沙发前排板凳都自己坐吧。。。发一份到看雪
sunnysab 2013-08-23
  • 打赏
  • 举报
回复
WSAGetLastError() = 10038(在一个非套接字上尝试了一个操作) 但是我明明开了另一个程序,新建了一个socket,且值为1952,为什么扫描不到? (UDP/TCP都没用)

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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