⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 talk_tcp_sr.c

📁 unix/linux使用socket编程的一个具体示例
💻 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 + -