Day23 第十站 文件IO的多路复用

Day23 第十站 文件IO的多路复用_第1张图片

#include 

void insert_client(int *client_arr,int *len,int client)
{
    //client_arr[n]={3,4} len=&client_count,client_count=2;
    //添加 5 client_arr[2(*len)]=5(client)
    client_arr[*len]=client;
    (*len)++;
}
int find_client(int *client_arr,int len,int client)
{
    for(int i=0;i
int main(int argc, const char *argv[])
{
        int sfd = socket(AF_INET,SOCK_STREAM,0);
        if(sfd==-1)
        {
            perror("sfd");
            return -1;
        }
        int reuse =1;
        if(setsockopt(sfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))==-1)
        {
            perror("sfd");
            return -1;
        }
        struct sockaddr_in sin;
        sin.sin_family=AF_INET;
        sin.sin_port=htons(6666);
        sin.sin_addr.s_addr=inet_addr("192.168.2.97");
        
        if(connect(sfd,(struct sockaddr*)&sin,sizeof(sin))==-1)
        {
            perror("find");
            return -1;
        }
        fd_set readfds;
        FD_ZERO(&readfds);
        FD_SET(sfd,&readfds);
        FD_SET(0,&readfds);

        while(1)
        {
            fd_set temp = readfds;
            select(FD_SETSIZE,&temp,0,0,0);
            if(FD_ISSET(sfd,&temp)==1)
            {
                char rbuf[128]="";
                read(sfd,rbuf,sizeof(rbuf));
                printf("数据为:%s\n",rbuf);
            }
            if(FD_ISSET(0,&temp)==1)
            {
                char buf[128]="";
                scanf("%s",buf);
                while(getchar()!=10);
                    int fd =sfd;
                    write(fd,buf,sizeof(buf));
                
                printf("发送成功\n");
            }
        }
        close(sfd);

    return 0;
}

Day23 第十站 文件IO的多路复用_第2张图片

Day23 第十站 文件IO的多路复用_第3张图片

你可能感兴趣的:(java,网络,服务器)