c++ - 在 Qt 中创建套接字

标签 c++ qt sockets

我正在尝试在 qt 中创建一个套接字。我使用的代码如下。在qt中,标准的connect()与用于socket连接的connect()有冲突。我该如何解决这个问题?

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);

最佳答案

来自套接字头文件(Linux 上的sys/socket.h)的函数connect 位于全局命名空间中,因为它是一个C 头文件。您可以通过编写显式引用全局命名空间

::connect(sock_Desc, (struct sockaddr *)&server, sizeof(server));

关于c++ - 在 Qt 中创建套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19080936/

相关文章:

c++ - 语法错误 : identifier not found. .. 但我已经包含了它? C++

c++ - Qt QML 中 MouseArea 的网格

qt - 我可以为多个信号设置一个插槽吗?

c++ - 在 C++ 中通过套接字发送图像时出现 "The image cannot be displayed error"

c++ - 在 Cygwin 上使用 -std=c++11 编译会隐藏可用的系统调用

c++ - 批量梯度下降算法不收敛

c# - 单声道兼容网络/套接字库

Delphi-使用套接字从网络下载文件

c++ - 可以通过 C++ 访问堆栈分配的 Rust 缓冲区吗?

c++ - Qt "private slots:"这是什么?