socket error 10013 (试图使用被禁止的访问权限去访问套接字),下面是代码,大家帮分析一下吧,谢了
sockServer=socket(AF_INET,SOCK_STREAM,0);sockaddr_inservice;service.sin_family=AF_INE...
sockServer = socket(AF_INET,SOCK_STREAM,0);
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.S_un.S_addr = ADDR_ANY;
service.sin_port = htons(80);
bind(sockServer, (SOCKADDR*)&service, sizeof(service));
err=WSAGetLastError();
if(err!=0)
printf("error1 %d\n",err);
运行的时候提示error1:10013,我在网上找了一下,说是端口冲突,如果我想用这个80端口的话应该怎么办,怎么解决冲突呢?或者说是其他原因导致的错误呢?
我已经关闭了防火墙,而且把改成其他端口的话是不提示这个错误的。 展开
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.S_un.S_addr = ADDR_ANY;
service.sin_port = htons(80);
bind(sockServer, (SOCKADDR*)&service, sizeof(service));
err=WSAGetLastError();
if(err!=0)
printf("error1 %d\n",err);
运行的时候提示error1:10013,我在网上找了一下,说是端口冲突,如果我想用这个80端口的话应该怎么办,怎么解决冲突呢?或者说是其他原因导致的错误呢?
我已经关闭了防火墙,而且把改成其他端口的话是不提示这个错误的。 展开
2个回答
展开全部
追问
我用了你讲的那个方法,在bind()后面增加了这样的代码:
BOOL val;
val=TRUE;
setsockopt(sockServer,SOL_SOCKET,SO_REUSEADDR,(char *)&val,sizeof(val));
err=WSAGetLastError();
if(err!=0)
printf("error1 %d\n",err);
奇怪的是虽然没有输出error1:错误,但是bind()的返回值还是为-1;这是什么原因啊?
追答
setsockopt使用在 bind之前
注意setsockopt返回是否有错
具体请多找一找资料
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询