最近在写一个socket程序,运行的时候提示error 10013;下面是代码
  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);
会不是是因为80端口占用的问题?

解决方案 »

  1.   

    我知道80端口被占用了,现在我想用我的电脑当服务器,监听80端口,上面用setsockopt设置了REUSEADDR,可是在bind()的时候还是出错了,为什么呀?
      

  2.   

    如果说80端口是留给服务器用的,那我们怎么来绑定80端口?我用了setscokopt函数里的REUSEADDR,可绑定的时候还是返回-1
      

  3.   

    要监听80端口恐怕不容易可以从截获 网卡数据来获得,然后通过端口号 辨别来 区分相应的数据。
    另外 IIS带有日志文件 直接学会分析IIS日志文件就可以了
    http://topic.csdn.net/t/20041016/10/3461508.html
      

  4.   

    我要写一个中间人程序,所以要写个socket来模拟服务器,也就要监听自己的80端口,难道真的没办法吗?
      

  5.   

    80端口虽然确实是http的默认协议端口,但问题是你没启动IIS,apache之类的http服务器,那80端口怎么会被占用呢?service.sin_addr.s_addr = htonl(INADDR_ANY);
      

  6.   

    因此你没启动过web服务器或者没有其它程序使用,那就不存在占用你用命令行 netstat -an
    看下有没有80端口在listening中
      

  7.   

    应该说的是windows吧. windows 上使用socket需要引入库.
    WSAStartup
      

  8.   

    感谢各位的回复,问题已经解决了,我关掉了IIS,然后顺利的绑定了80端口。