2 u011412588 u011412588 于 2016.03.23 16:58 提问

qt创建SOCKET编译报错

图片说明为什么用QT在windows下创建SOCKET套接字会报错,是不是编译器的问题啊,找来找去找不到问题啊。。。。。求大神相助,网络编程新手,还有就是我已经确定包含了WS2_32.lib

3个回答

tax10240809163com
tax10240809163com   2016.03.23 17:30
已采纳

QString hostip = "192.168.168.113";
qint16 port = 8000;
psocket = new QTcpSocket;
psocket->connectToHost( QHostAddress( hostip ), port );

u011412588
u011412588 什么意思
2 年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.03.24 11:14

将变量的申明放在一个函数块的头部,好像改成这样就好了

 int sock_send()
{
    WSADATA WSAdata;
    WORD ver;
    SOCKET st;
    struct sockaddr_in addr;
    WSAStartup(ver, &WSAdata);
    st = socket(AF_INET, SOCK_DGRAM, 0);
    memset(&addr, 0, sizeof(addr));
    addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    addr.sin_family = AF_INET;
    addr.sin_port = htons(8080);
    return 0;
}
qq423399099
qq423399099 哈哈,我今天也发生和LZ一样的错误了,改了下顺序就好了
2 年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.03.23 17:35

试了下楼主的代码,在我的电脑上是能跑的,楼主要不删了build-XXXX-XX-XX文件夹,重新生成一下试试

 #include <WinSock2.h>
int sock_send()
{
    WSADATA WSAdata;
    WORD ver;
    WSAStartup(ver, &WSAdata);
    SOCKET st = socket(AF_INET, SOCK_DGRAM, 0);
    struct sockaddr_in addr;
    memset(&addr, 0, sizeof(addr));
    addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    addr.sin_family = AF_INET;
    addr.sin_port = htons(8080);
    return 0;
}
qq423399099
qq423399099 回复Stock_: so sad
2 年多之前 回复
u011412588
u011412588 本来想采纳你的,点错了。。。
2 年多之前 回复
u011412588
u011412588 不过今天在论坛看到说c的编译要把变量在生存块的起始定义,没试过,回去看看行不行
2 年多之前 回复
u011412588
u011412588 我是在pro文件里加的ws2_32.lib 即LIBS+=-lWs2_32
2 年多之前 回复
qq423399099
qq423399099 回复Stock_: 要在.pro文件中加入LIBS += -lWs2_32(加完以后记得把build-XXX-XX文件夹删掉重新生成)
2 年多之前 回复
qq423399099
qq423399099 回复Stock_:我今天又试了下楼主加库的时候是不是用#pragma comment(lib, "ws2_32.lib")这个的
2 年多之前 回复
u011412588
u011412588 依旧不行
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
QT创建TCP Socket通信
QT创建TCP Socket通信       最近在学习QT,了解到QT可以进行SOCKET网络通信,进行学习,并建立一个简单的聊天DEMO。为了测试是否能与VS2012下的程序进行通信,在VS2012下建立一个客户端程序,进行通信测试,发现可以进行通信。由此也可以证明,对于采用同一种通信协议(TCP)的两个程序而言,不管是采用什么编译器,尽管采用的语法不同,仍是能够进行通信的。下面先对QT的TC...
QT串口通信案例+串口调试工具
一个QT串口通信的案例,加调试工具,新版本QT5.3,防止编译报错
qt得到本机ip和创建socket
qt得到本机ip注意默认第一个ip是127.0.0.1 创建socket注意要绑定成功再映射关联函数
Qt 中Socket编程实例
Qt 中Socket编程实例 本文章所讲述的内容是关于Qt中Socket编程,对于socket,大家并不陌生,应用程序调用socket函数来创建一个能够进行网络通信的套接字。 SOCKET socket( int af, int type, int protocol ); 应用程序调用socket函数来创建一个能够进行网络通信的套接字。第一个
QT编写的Socket工具,TCP 以及 UDP 可建立服务端 客户端等,完整源码奉献
因为频繁需要测试网络连接,所以特意用QT编写了这个Socket工具,可使用TCP 以及 UDP 来建立服务端 和客户端等,涵盖大部分网络测试使用需求,使用 Qt 编写,无错误无警告,可直接编译运行。 分设的有点多,但是绝对值这个分,分多也能令下载的兄弟珍惜一些。 完整源码奉献
QT tcp Socket 通信开发
折腾了很久TCP IP通信机制。 以前虽然看过bsd tcp/ip的so called 基础通信代码。什么bind, listen ,accept , receive, write, read,但是一直没真正理解。 这次由于公司需求,我狠狠地读了代码,并且搬出QT老本行,开始了QT For windows的编程。 这个大体构架是做一个聊天室软件。 每个client都可以给服
Qt开发:释放线程中创建的QUdpSocket对象
在做Symbian应用开发和MeeGo应用开发时Q框架是一个统一的开发框架,很多时候需要在QThread的run中new一个QUdpSocket来收发数据.这时,这个socket对象的释放就成了一个麻烦的问题. 51CTO编者按:在做Symbian应用开发和MeeGo应用开发时Q框架是一个统一的开发框架,很多时候需要在QThread的run中new一个QU
QT上的socket网络通信编程
socket是一种实现网络不同主机进程通信的一种机制。根据是否面向连接,可以将socket通信分为面向连接的数据流和面向无连接的数据报通信。两者在实现的地方,有类似的地方:都需要创建相应的socket对象。但是,两者也有一定的区别。面向连接的TCP通信需要双方建立可行的数据连接后才能通信,而面向无连接的UDP通信则只是简单的将数据发送到对应的目标主机即可。 一、TCP通信编程流程
Qt 简单的 tcp socket 通信流程
刚接触 Qt 网络编程这一块,以下是一个简单的 tcp 通信流程,里面还有很多东西没有弄懂,难免有错误存在,在这里先做记录,以后弄懂了再做改正。 服务器端代码: chat_server.h #ifndef __chat_server_h__ #define __chat_
QT跨线程的信号与槽[2]---后台SOCKET
继上一篇文章 大体实现了一个与UI线程分离的SOCKET封装类 即后台线程负责收发数据包,有数据到来则通知UI线程 UI线程发送数据时通知后台线程(异步) 嗯,大概是这个意思 #pragma once #include #include #include "XBackgroundWorker.h" class CXAsyncSocket : public CXBackgroundW