bind为什么出错?

anglely168 2002-07-22 05:27:23
我跟正到bind时候出错退出,各位大侠帮忙!代码如下:
wVersionRequested = MAKEWORD( 2, 2 );

rt = WSAStartup( wVersionRequested, &wsaData );
if ( rt != 0 )
{
sprintf(buffer,"cann't open winsock dll % d\n",WSAGetLastError());
return ;
}

SOCKET lSock,cSock;
struct sockaddr_in localaddr;

lSock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(lSock == SOCKET_ERROR)
{
sprintf(buffer,"socket create failed! %d\n",WSAGetLastError());
return ;
}

memset(&localaddr,'0',sizeof(localaddr));
localaddr.sin_family = AF_INET;
localaddr.sin_port = htons(PORT);
localaddr.sin_addr.s_addr = htonl(INADDR_ANY);

rt = bind(lSock,(SOCKADDR*) &localaddr,sizeof(localaddr));
if(rt = SOCKET_ERROR)
{
sprintf(buffer,"cann't bind, %d\n",WSAGetLastError());
return ;
}

...全文
101 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
e2wugui 2002-07-22
  • 打赏
  • 举报
回复
const int op = 1;
setsockopt(lSock, SOL_SOCKET, SO_REUSEADDR, &op, sizeof(op));

如果只有你自己在用,设置一下这个,否则,要等一段时间才能再用。
wiler 2002-07-22
  • 打赏
  • 举报
回复
可能某个进程正在用这个port
你退出所有程序后编译看看
firming 2002-07-22
  • 打赏
  • 举报
回复
是不是使用小于1023的端口,或者你bind的端口已经有程序使用了.
jyc_nj 2002-07-22
  • 打赏
  • 举报
回复
是不是这个port已经给用了?
还有你sprintf到buffer里的是什么值?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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