QT自带network模块提供网络功能,这里介绍QT下如何使用winsocket来开发网络程序。
在项目工程文件中配置
LIBS += -lws2_32
在源代码文件中添加头文件引用
#include <WinSock2.h>
然后编写源代码
WSADATA wsadata;
WSAStartup(0x202, &wsadata);
SOCKET sockt = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in serv_addr;
memset(&serv_addr, 0x00, sizeof(struct sockaddr_in));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
serv_addr.sin_port = htons(21);
int rc = 0;
rc = ::connect(sockt, (struct sockaddr*)&serv_addr, sizeof(struct sockaddr_in));
if (rc < 0)
{
qDebug() << "error";
}
else
{
qDebug() << "success";
}
这里唯一需要注意的地方就是connect函数前面的全局域操作符。