2013-09-29 5 views
0

Сам пытается создать сокет в qt.the код, который я использовал, является следующим. В qt стандартное «соединение» становится конфликтующим с «подключением», используемым для подключения слота сигнала. Как я могу это исправить.Создание сокетов в Qt

int sock_Desc = 0; 
    if (proxy_port == 0) 
    { 
      proxy_port = 3773; 
    } 
    sock_Desc = socket(AF_INET, SOCK_STREAM, 0); 
    struct sockaddr_in server; 
    server.sin_addr.s_addr = inet_addr(127.0.0.1); 
    server.sin_family  = AF_INET; 
    server.sin_port   = htons(proxy_port); 
    connect(sock_Desc, (struct sockaddr *)&server, sizeof(server)); 
    int rc = 0; 
    if ((option & 1) == 0) 
    { 
      if(send(sock_Desc, message, strlen(message), 0) < 0) { 

        close(sock_Desc); 
           } 
      if ((option & 2) == 2) 
      { 
        rc = recv(sock_Desc, rcv_Msg, 512, 0); 
        if (rc == 0)  { 
          close(sock_Desc); 
        } 

        if (rc < 0)   { 

          close(sock_Desc); 
       } 
      } 
    } else { 
      if(option & 2 == 2) 
      { 
        rc = system(message); 
      }    } 
    } 

    close(sock_Desc); 

}

+2

Если это Qt, почему бы мне не увидеть Qt-код? Почему бы вам просто не использовать Qt-сокеты, то есть QTcpSocket? – leemes

+0

Я хочу этот код с кодом qt. – Shewzan

ответ

2

Функция connect из заголовка сокета (sys/socket.h на Linux) находится в глобальном пространстве имен, так как это заголовочный файл С. Вы можете явно ссылаться на глобальное пространство имен, написав

::connect(sock_Desc, (struct sockaddr *)&server, sizeof(server)); 
Смежные вопросы