In the following program, the server listens to port 5000. After the client connects to the server over TCP, the server will send the "Hello, success" string to the client. The program is very simple, but implements basic functions.
The server program is as follows:
# Include <sys/socket. h>
# Include <netinet/in. h>
Int main ()
...{
Int listensock, connsock;
Const char buff [] = "Hello, success ";
Struct sockaddr_in serveraddr;
Bzero (& serveraddr, sizeof (serveraddr ));
Listensock = socket (af_inet, sock_stream, 0 );
Serveraddr. sin_family = af_inet;
Serveraddr. sin_addr.s_addr = htonl (inaddr_any );
Serveraddr. sin_port = htons (5000 );
BIND (listensock, (struct sockaddr *) & serveraddr, sizeof (serveraddr ));
Printf ("begin to listen on port 5000 ...");
Listen (listensock, 1024 );
Connsock = accept (listensock, null, null );
Send (connsock, buff, sizeof (buff), 0 );
Close (connsock );
Close (listensock );
}
The client program is as follows:
# Include <sys/socket. h>
# Include <netinet/in. h>
Int main (INT argc, char * argv [])
...{
Int sockfd;
Char buffer [100];
Struct sockaddr_in serveraddr;
Bzero (& serveraddr, sizeof (serveraddr ));
Serveraddr. sin_family = af_inet;
Serveraddr. sin_port = htons (5000 );
Inet_ton (af_inet, "192.168.9.9", & serveraddr. sin_addr );
Sockfd = socket (af_inet, sock_stream, 0 );
Int value = connect (sockfd, (struct sockaddr *) & serveraddr, sizeof (serveraddr ));
If (value = 0)
Printf ("Connect succeed ");
Else
Printf ("Connect failed ");
Recv (sockfd, buffer, sizeof (buffer), 0 );
Printf ("% s", buffer );
Close (sockfd );
}