基本socket通信
#include <stdio.h>#include <signal.h>#include <string.h>#include <stdlib.h>#include <pthread.h>#include <sys/select.h>#include <sys/time.h>#include <sys/types.h>#include <sys/socket.h>#include <linux/in.h>#include <unistd.h>#include <fcntl.h>int main(){int max,i;int fd = 0;int se_num;int sock,client_sock;int num;fd_set rset;char buf[512];struct sockaddr_in server_addr;struct sockaddr client_addr;int len = sizeof(struct sockaddr);server_addr.sin_family = AF_INET;server_addr.sin_port = htons(2631);/* it is ok *///server_addr.sin_addr.s_addr = htonl(0x7f000001);inet_aton("127.0.0.1",&server_addr.sin_addr);int fl_sock;if((sock = socket(AF_INET,SOCK_STREAM,0)) < 0) {perror("socket");return -1;}if((bind(sock,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))) < 0) {perror("bind");return -1;}if((listen(sock,5)) < 0) {perror("listen");return -1;}if((client_sock = accept(sock,&client_addr,&len)) < 0) {perror("accept");return -1;}fprintf(stderr,"client_sock = %d\n",client_sock);while(1) {memset(buf,0,sizeof(buf));if((num=read(client_sock,buf,sizeof(buf))) == 0) {fprintf(stderr,"client is closed\n");return -1;}printf("client(num=%d): %s\n",num,buf);}}
#include <stdio.h>#include <signal.h>#include <stdlib.h>#include <string.h>#include <pthread.h>#include <sys/select.h>#include <sys/time.h>#include <sys/types.h>#include <sys/socket.h>#include <linux/in.h>#include <unistd.h>#include <fcntl.h>void sig_pipe(int a){printf("receive signal pipe\n");exit(-1);}int main(){int sock,client_sock;fd_set rset;int num;char buf[] = "hello world\0r";struct sockaddr_in server_addr;struct sockaddr client_addr;int len = sizeof(struct sockaddr);server_addr.sin_family = AF_INET;server_addr.sin_port = htons(2631);inet_aton("127.0.0.1",&server_addr.sin_addr);signal(SIGPIPE,sig_pipe);if((sock = socket(AF_INET,SOCK_STREAM,0)) < 0) {perror("socket");return -1;}if(connect(sock,(struct sockaddr *)&server_addr,sizeof(struct sockaddr)) < 0) {perror("connect");return -1;}while(1) {printf("write %d\n",write(sock,buf,sizeof(buf)));sleep(1);}}