📄 talk_tcp_sr.c
字号:
/*mytalk.c*/#include <stdio.h> /*fputs()*/#include <stdlib.h> /*exit()*/#include <string.h> /*memset(),atoi()*/#include <errno.h> /*strerror()*/#include <netinet/in.h> /*struct sockaddr_in,htons(),inet_addr()*/#include <sys/types.h> /*socket()*/#include <sys/socket.h> /*socket(),inet_addr()*/#include <arpa/inet.h> /*inet_addr()*/static void myerr(const char *on_what){ if(errno!=0){ fputs(strerror(errno),stderr); fputs(":",stderr); } fputs(on_what,stderr); fputc('\n',stderr); exit(1);}extern int read();extern int write();extern int close();int main(int argc,char **argv){ int z; /*state code of back*/ int s,c; /*local socket*/ char *server_ip=NULL;// char *client_ip=NULL; char *server_port="9095";// char *client_port="9096"; struct sockaddr_in server_address; struct sockaddr_in client_address; int len_inet; char receive_buf[512];// char send_buf[512]; if(argc>=2) server_ip=argv[1];// if(argc>=3) client_ip=argv[2]; /*generat server socket*/ s=socket(PF_INET,SOCK_STREAM,0);/*creat a TCP socket*/ if(s==-1) myerr("socket()"); len_inet=sizeof server_address; /*creat server socket address*/ memset(&server_address,0,len_inet); server_address.sin_family=AF_INET; server_address.sin_port=htons(atoi(server_port)); server_address.sin_addr.s_addr=inet_addr(server_ip); /*bind server address*/ z=bind(s,(struct sockaddr *)&server_address,len_inet); if(z==-1) myerr("bind(2)"); z=listen(s,10); if(z==-1)myerr("listen(2)"); len_inet=sizeof client_address; c=accept(s, (struct sockaddr *)&client_address, &len_inet); if(z<0)myerr("accept(2)"); for(;;){ z=read(c,receive_buf,sizeof receive_buf); if(z==-1)myerr("read(2)"); printf("%s\n",receive_buf); } close(s); putchar('\n'); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -