Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 选择并接受值,ftp创建_Sockets - Fatal编程技术网

Sockets 选择并接受值,ftp创建

Sockets 选择并接受值,ftp创建,sockets,Sockets,我在循环的开始有FD_ZERO,这是一个函数add_clients_to_readfs,它使用我列表中的文件描述符重新初始化readfds FD_集,这是一个经典的选择。在循环之前,我在列表中按下select fd,如果fd_ISSET有反应,这是一个新的客户端连接,因此我接受客户端并将其fd添加到列表中。但我在printf中的fd_客户端总是1。你知道吗?运算符优先级问题 while (1) { FD_ZERO(&readfs); readfs =

我在循环的开始有FD_ZERO,这是一个函数add_clients_to_readfs,它使用我列表中的文件描述符重新初始化readfds FD_集,这是一个经典的选择。在循环之前,我在列表中按下select fd,如果fd_ISSET有反应,这是一个新的客户端连接,因此我接受客户端并将其fd添加到列表中。但我在printf中的fd_客户端总是1。你知道吗?

运算符优先级问题

  while (1)
    {
      FD_ZERO(&readfs);
      readfs = add_clients_to_readfs(list_fd);
      select(get_max_fd(list_fd) + 1, &readfs, NULL, NULL, NULL);

      if (FD_ISSET(fd_socket, &readfs))
        {
          if (fd_client = (xaccept(fd_socket, (struct sockaddr *)s_in_client, &s_in_size)) != -1)
            {
              printf("FD_CLIENT %i\n", fd_client);
              add_client_to_list(list_fd, fd_client);
            }
        }
if (fd_client = (xaccept(fd_socket, (struct sockaddr *)s_in_client, &s_in_size)) != -1)
应该是

if ((fd_client = xaccept(fd_socket, (struct sockaddr *)s_in_client, &s_in_size)) != -1)