client.c

来自「Linux下服务器即时通信客户端程序」· C语言 代码 · 共 56 行

C
56
字号
#include<stdlib.h>#include<unistd.h>#include <sys/types.h>#include <sys/socket.h>#include<stdio.h>#include <arpa/inet.h>#include<errno.h>#include<sys/select.h>intmain(int argc , char *argv[]){   struct sockaddr_in addr_in;   int sfd,ret;   char buf[100];   int n;   char buff[100];   fd_set sockset;   if ( argc != 2)   {	   perror( "command error");	   exit(0);   }   if (( sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){    perror("socket");   exit(1);   }      addr_in.sin_family = AF_INET;   addr_in.sin_port = htons(2008);   inet_pton(AF_INET, "192.168.1.57", &addr_in.sin_addr);   if (connect(sfd,  (struct sockaddr *)&addr_in, sizeof(addr_in)) < 0){    perror("connect");   exit(1);    }    write (sfd, argv[1], 100);   while(1){	   FD_ZERO(&sockset);	   FD_SET(sfd, &sockset);	   FD_SET(0, &sockset);  	  select(sfd+1, &sockset, NULL, NULL, NULL);	 if(FD_ISSET(sfd, &sockset)){		printf("receive message :\n"); 	   if((n = read(sfd, buff, sizeof(buff))) > 0)   	   if(write(1, buff, n) != n)		perror("write error");      }	   	 if(FD_ISSET(0, &sockset)){		printf("send message :\n");        if((n = read(0, buff, sizeof(buff))) > 0)   	   if(write(sfd, buff, n) != n)		perror("write error");      }		}	return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?