开发者

Bind: Address Already in Use

开发者 https://www.devze.com 2022-12-09 12:03 出处:网络
I\'m trying to run my server program but I keep getting this error: ERROR on binding: Address already in use

I'm trying to run my server program but I keep getting this error:

ERROR on binding: Address already in use

  int main(int argc, char *argv[]){

        if (argc < 6){
          printf("usage: stringSearcher <filename> <stringLength>  <searchLength> <nChildren> <nThreads> <blockSize>\n");
          exit(0);
        }

        char* fileName = argv[1];
        int stringLen = atoi(argv[2]);
        int searchLen = atoi(argv[3]);
        nChildren = atoi(argv[4]);
        if (nChildren == 0)
          nChildren = 1;
        int nThreads = atoi(argv[5]);
        int blockSize = atoi(argv[6]);
        int childNo = 0;

    //Opens new socket
      int sockfd;
      sockfd = socket(AF_INET, SOCK_STREAM, 0);

      if (sockfd < 0){
        perror("ERROR opening socket");
        exit(0);
      }



  int  newsockfd, port开发者_如何学运维no, clilen;
  struct sockaddr_in serv_addr, cli_addr;
  int n;

  portno = 5000;
  serv_addr.sin_family = AF_INET;
  serv_addr.sin_addr.s_addr = INADDR_ANY;
  serv_addr.sin_port = htons(portno);

  int opt = 1;
  setsockopt(1, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));

  if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
    perror("ERROR on binding\n");
   exit(1);
  }


setsockopt(1, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));

1st argument must be sockfd and not '1'


an excellent tool for winsock development is TCPView. it makes it simple to see which process is listening on which port, socket status, etc.

0

精彩评论

暂无评论...
验证码 换一张
取 消