📄 client.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 + -