Unix Socket programming: TCP server
# include
# include
# include
# include
# include
# include
Int main (int argc,char * argv [])
{
Int serv_sock,clnt_sock
Char msg [] = "Hello SZT! ~"
Struct sockaddr_in serv_adr,clnt_adr
Socklen_t clnt_adr_sz
If (argc! = 2)
{
Printf ("Please enter the port number when running! ~\ n")
Exit (1)
}
Serv_sock = socket (PF_INET,SOCK_STREAM,0)
Memset (& serv_adr,0,sizeof (serv_adr))
Serv_adr.sin_family = AF_INET
Serv_adr.sin_addr.s_addr = htonl (INADDR_ANY)
Serv_adr.sin_port = htons (atoi (argv [1]))
Bind (serv_sock, (struct sockaddr *) & serv_adr,sizeof (serv_adr))
If (listen (serv_sock,5)! =-1)
{
Printf ("listen (); waiting for client connection, port:% s\ n", argv [1])
}
Clnt_adr_sz = sizeof (clnt_adr)
Clnt_sock = accept (serv_sock, (struct sockaddr *) & serv_adr,&clnt_adr_sz)
If (clnt_sock! =-1)
{
Printf ("accept (); client connected\ n")
}
Write (clnt_sock,msg,sizeof (msg))
Printf ("write (); data has been sent:% s\ n", msg)
Close (clnt_sock)
Close (serv_sock)
Return 0
}