为什么用QT在windows下创建SOCKET套接字会报错,是不是编译器的问题啊,找来找去找不到问题啊。。。。。求大神相助,网络编程新手,还有就是我已经确定包含了WS2_32.lib
QString hostip = "192.168.168.113";
qint16 port = 8000;
psocket = new QTcpSocket;
psocket->connectToHost( QHostAddress( hostip ), port );
试了下楼主的代码,在我的电脑上是能跑的,楼主要不删了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;
}
将变量的申明放在一个函数块的头部,好像改成这样就好了
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;
}