标签:linux编程 linux多线程 linux c linux网络编程 多线程程序设计
/* tcp_server.c */ #include <stdio.h> #include <sys/socket.h> #include <string.h> #include <netinet/in.h> #define portnum 3333 int main() { int sockfd,newfd; struct sockaddr_in server_addr; struct sockaddr_in client_addr; char buffer[128]; int nbyte; int sin_size; int pid; //创建socket if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) { printf("create socket error\n"); exit(1); } //设置要绑定的地址 bzero(&server_addr,sizeof(struct sockaddr_in)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons(portnum); server_addr.sin_addr.s_addr = htonl(INADDR_ANY); //绑定地址 bind(sockfd,(struct sockaddr*)&server_addr,sizeof(struct sockaddr)); //监听端口 listen(sockfd,5); while(1) { //等待连接 sin_size = sizeof(struct sockaddr); newfd = accept(sockfd,(struct sockaddr*)&client_addr,&sin_size); printf("server get connection from %s\n",inet_ntoa(client_addr.sin_addr)); if(pid=fork()==0) { //接收数据 nbyte = recv(newfd,buffer,128,0); buffer[nbyte] = '\0'; printf("server received :%s",buffer); close(newfd); close(sockfd); exit(0); } else if(pid<0) { printf("fork error!\n"); } //结束连接 close(newfd); } close(sockfd); return 0; }
标签:linux编程 linux多线程 linux c linux网络编程 多线程程序设计
原文地址:http://blog.csdn.net/zhuwenfeng215/article/details/45586959