client.c

来自「Linux下实现的socket通信」· C语言 代码 · 共 65 行

C
65
字号
#include <sys/types.h> 
#include <sys/socket.h> 
#include <stdio.h> 
#include <sys/un.h> 
#include <unistd.h>#define C2_LEN 20 
int main() 
{ 
    
 while(1){   
 int flag=1;   
int n = 1;
struct timeval tv;//等待时间
fd_set rfds;

tv.tv_sec = 5;
tv.tv_usec = 0;   

int sockfd; 
int len,numbytes; 
struct sockaddr_un address; 
int result; 
//char ch='A'; char ch[C2_LEN];  
sockfd=socket(AF_UNIX,SOCK_STREAM,0); 
/*以上建立客户端的套接口,采用AF_UNIX的unix域协议*/ 
address.sun_family=AF_UNIX; 
strcpy(address.sun_path,"server_socket"); 
len=sizeof(address); 
/*以上创建服务器套接口的地址,其中包括套接口类型,名称*/ 
result=connect(sockfd,(struct sockaddr *)&address,len); 

if(result==-1){ 
perror("oops:client1"); 
exit(1); 

} 
/*以上我们试图与服务器套接口建立连接*/ 

//write(sockfd,&ch,1); 
FD_ZERO(&rfds);
FD_SET(sockfd, &rfds);//fd为要检测的文件句柄
while(flag)
    {
    
 
        n = select(sockfd+1, &rfds, NULL, NULL, &tv);
        if(n>0)
            {   
             if((numbytes=recv(sockfd,&ch,C2_LEN,0))==-1)                      {                     perror("recv");  
                     exit(1);                        }
               flag=0;
             }
        else continue;
    }ch[numbytes]='\0';
printf("char from server=%s\n",ch); 
close(sockfd);} 
return 0; 
} 

⌨️ 快捷键说明

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