simple tcp socket programming

M.W. Chang mwchang
Mon May 17 11:59:43 PDT 2004


Given this code fragment, how could I modify it to bind to a 
user-specified port, rather than obtaining an available port?

server.c:

    /* open socket */
    sock = socket(PF_INET, SOCK_STREAM , 0);
    if (sock < 0) {
         perror("server: Error opening stream socket");
         exit(1);
    }

    server.sin_family = PF_INET;
    server.sin_addr.s_addr = INADDR_ANY;
    server.sin_port = 0;
    if (bind(sock, (struct sockaddr *)&server, sizeof server) < 0) {
         perror("server: Error binding server socket to message socket");
         exit(1);
    }

    /* obtain the first availble port */
    length = sizeof server;
    if (getsockname(sock, (struct sockaddr *)&server, &length)<0) {
         perror("server: Error obtaining socket name");
         exit(1);
    }
    listen(sock,5);


-- 
   .~.    http://toylet.homeip.net
  / v \   Linux 2.4.22-xfs
/( _ )\  10:22pm up 1 day 4:27
   ^ ^    load average: 1.00 1.01 1.00



More information about the Linux-users mailing list