33,311
社区成员
发帖
与我相关
我的任务
分享
if(SOCKET_ERROR==retval);
{
多了一个分号
//绑定socket server到本地地址
retval=bind(sserver,(const struct sockaddr*)&addrserv,sizeof(addrserv));
if(SOCKET_ERROR==retval); // 这个你加了if后面的分号,后面是必须执行的哦!
// 这样的吧,我不晓得 你SOCKET_ERROR怎么定义的
//不过我建议你 if ( retval != 0 )
if( SOCKET_ERROR == retval )
{
printf("bind failed!\n");
printf("%d",retval);
closesocket(sserver);
WSACleanup();
return -1;
}
[/quote]谢谢~~已经发现问题出在那里了。。[/quote]
问题解决了 左上角或者左下角都有 结贴按钮, 结贴是个好习惯哦!
//绑定socket server到本地地址
retval=bind(sserver,(const struct sockaddr*)&addrserv,sizeof(addrserv));
if(SOCKET_ERROR==retval); // 这个你加了if后面的分号,后面是必须执行的哦!
// 这样的吧,我不晓得 你SOCKET_ERROR怎么定义的
//不过我建议你 if ( retval != 0 )
if( SOCKET_ERROR == retval )
{
printf("bind failed!\n");
printf("%d",retval);
closesocket(sserver);
WSACleanup();
return -1;
}
[/quote]谢谢~~已经发现问题出在那里了。。
//绑定socket server到本地地址
retval=bind(sserver,(const struct sockaddr*)&addrserv,sizeof(addrserv));
if(SOCKET_ERROR==retval); // 这个你加了if后面的分号,后面是必须执行的哦!
// 这样的吧,我不晓得 你SOCKET_ERROR怎么定义的
//不过我建议你 if ( retval != 0 )
if( SOCKET_ERROR == retval )
{
printf("bind failed!\n");
printf("%d",retval);
closesocket(sserver);
WSACleanup();
return -1;
}
int optval = -1;
socklen_t optlen = -1;
// 设置地址和端口号可以重复使用
optval = 1;
optlen = sizeof(optval);
setsockopt(sserver, SOL_SOCKET, SO_REUSEADDR, &optval, optlen);
//绑定前面加上上面的socket属性可 重复使用地址
retval=bind(sserver,(const struct sockaddr*)&addrserv,sizeof(addrserv));
试试这个,看是不是 地址复用报什么错??
int optval = -1;
socklen_t optlen = -1;
// 设置地址和端口号可以重复使用
optval = 1;
optlen = sizeof(optval);
setsockopt(sserver, SOL_SOCKET, SO_REUSEADDR, &optval, optlen);
//绑定前面加上上面的socket属性可 重复使用地址
retval=bind(sserver,(const struct sockaddr*)&addrserv,sizeof(addrserv));