Qt Creator未定义套接字-Linux
Qt Creator undefined socket - Linux
我正在尝试制作一个服务器/客户端应用程序,还试图在QT中为客户端设计一个GUI界面。现在,我已经设法使用库制作了套接字。然而,当我将代码写入QtCreator时,它表明sockaddr_in是未定义的,尽管我已经包含了库。(当我用g++在linux上编译代码时,它运行良好)可能有什么问题?
这就是我声明套接字的方式:sockaddr_in server;
编辑:可能是QT Creator没有g++编译器?如果可能是这种情况,我该如何添加它?很抱歉,但我对QT和编程还很陌生
我使用"启动"按钮来启动我的应用程序,这是其中的代码:
void MainWindow::on_StartButton_clicked()
{
int port;
port=portiuse;
int clientsd;
sockaddr_in server;
if ( ( clientsd = socket(AF_INET, SOCK_STREAM, 0) ) == -1 )
{
perror("[client]Errorn");
return errno;
}
bzero (&server, sizeof (server));
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr("127.0.0.1");
server.sin_port = htons (port);
if( ( connect(clientsd, (struct sockaddr *) &server, sizeof (struct sockaddr) ) ) == -1 )
{
perror("[client]Error()n");
return errno;
}
}
这些是我得到的错误:
错误:未在此作用域中声明"sockaddr_in"sockaddr_in服务器;^
错误:未在此作用域中声明"server"bzero(&server,sizeof(server));^
错误:未在此作用域中声明"inet_addr"server.sin_addr.s_addr=inet_addr(ip);^
如果您说">包含了库",您的意思是包含<netinet/in.h>
吗?
QtCreator确实是一个IDE。它需要知道(或者被告知)在哪里可以找到它的工具链和编译器。您可以在"选项"、"构建和运行"下检查这一点,并使用Qt版本、编译器等选项卡。通常,它会自动检测GCC。
但我想它是在编译,因为您收到了一个关于sockin_addr未定义的错误。否则,只需先尝试构建一个简单的"你好世界"。
我已经修复了它,我只是很笨,忘记添加一个include。感谢大家对的帮助
相关文章:
- 如何在CPP中创建应该在Windows和Linux上运行的套接字?
- 在 Linux 中关闭 UDP 套接字后,recv 不会返回
- 尝试连接到 TCP 套接字 (Linux) 时连接被拒绝
- Linux 套接字 recv 返回 -1,errno 110 连接超时
- Linux 套接字程序只是冻结而没有错误
- 带有线程的 Linux 套接字文件描述符
- Connect()返回0 Linux套接字编程(C/C )
- C++ Linux 套接字在字符 *msg 中添加变量
- Linux套接字编程:读取Sigio的数据
- 更改 Linux 套接字文件权限
- 通过Linux套接字接收多个主机的数据
- 从 Linux 套接字读取"varint"
- C++ Linux 套接字,它在单个调用中将字符串数组 (char**) 作为串联字符串发送
- 如何确定 Linux 套接字在C++中绑定到哪些接口
- 从C++(Linux 套接字)中的缓冲区中提取 IP 地址
- Linux套接字作为多播服务器和客户端
- 无法从外部本地网络连接到 C++ Linux 套接字程序
- 通过管道/内部linux套接字实现RPC的任何开源C/ c++库/框架
- linux套接字接收离开
- 将文件从java套接字发送到c++ linux套接字