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

📄 client.c

📁 Linux下实现的socket通信
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -