客戶端
//client.c #include<stdio h=""> #include<stdlib h=""> #include<string h=""> #include<unistd h=""> #include<sys socket="" h=""> #include<netinet in="" h=""> #define MAXLINE 80 #define SERV_PORT 8000 int main(int argc,char *argv[]) { struct sockaddr_in servaddr; char buf[MAXLINE]; int sockfd,n; char *str; if(argc !=2){ fputs("usage:./client message\n",stderr); exit(1); } str =argv[1]; sockfd = socket(AF_INET,SOCK_STREAM,0); bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family = AF_INET; inet_pton(AF_INET,"127.0.0.1",&servaddr.sin_addr); servaddr.sin_port = htons(SERV_PORT); connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr)); write(sockfd,str,strlen(str)); n = read(sockfd,buf,MAXLINE); printf("Response from server:\n"); write(STDOUT_FILENO,buf,n); close(sockfd); return 0; } </netinet></sys></unistd></string></stdlib></stdio>服務器端
//server.c #include<unistd h=""> #include<sys socket="" h=""> #include<netinet in="" h=""> #define MAXLINE 80 #define SERV_PORT 8000 int main(void) { struct sockaddr_in servaddr,cliaddr; socklen_t cliaddr_len; int listenfd,connfd; char buf[MAXLINE]; char str[INET_ADDRSTRLEN]; int i,n; listenfd = socket(AF_INET,SOCK_STREAM,0); bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(SERV_PORT); bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr)); listen(listenfd,20); printf("Accepting connections ...\n"); while(1) { cliaddr_len = sizeof(cliaddr); connfd = accept(listenfd,(struct sockaddr *)&cliaddr,&cliaddr_len); n = read(connfd,buf,MAXLINE); printf("received from %s at PORT %d\n",inet_ntop(AF_INET,&cliaddr.sin_addr,str,sizeof(str)),ntohs(cliaddr.sin_port)); for(i = 0;i<n;i++) { buf[i] = toupper(buf[i]); } write(connfd,buf,n); close(connfd); } return 0; } </netinet></sys></unistd>詳細請參考:http://www.cnblogs.com/QG-whz/p/5435396.html