Listing 2: A simple client application

#include <sys/socket.h>
#include <netinet/in.h>

int main ()
{
  int sd, clientsd;
  char message[ 80 ];

  struct sockaddr_in serveraddr;

  sd = socket ( AF_INET, SOCK_STREAM, 0 );

  memset ( &serveraddr, 0, sizeof ( serveraddr ) );
  serveraddr.sin_family = AF_INET;
  serveraddr.sin_port = htons ( 2112 );
  serveraddr.sin_addr.s_addr = inet_addr ( "127.0.0.1" );

  bind ( sd, ( struct sockaddr* ) &serveraddr,
         sizeof ( serveraddr ) );

  listen ( sd, 1 );

  for ( ;; )
  {
    clientsd = accept ( sd, ( struct sockaddr* )
                        NULL, NULL );

    memset ( message, 0, 80 );
    read ( clientsd, message, 80 );
    write ( clientsd, message, 80 );
    close ( clientsd );
  }

  return ( 0 );
}

— End of Listing —