Qt中使用 windows 套接字编程 客户端demo

本文探讨了在Qt环境下进行网络编程的具体实践,包括使用WSAStartup初始化Winsock,创建套接字,以及如何正确使用::符号避免信号槽连接冲突。同时,详细介绍了登录消息发送和接收的结构体设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Qt里面使用connect需要加上两个::不然会与信号连接冲突

WSADATA wsa;

if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
{
    cout << "WSAStartup failed" << endl;
}

m_sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

if (m_sockfd == INVALID_SOCKET)
{
    cout << "invalid socket" << endl;
}

if (::connect(m_sockfd, (sockaddr *)&m_servaddr, sizeof(m_servaddr)) == SOCKET_ERROR)
{
    cout << "connect error" << endl;
    cout << WSAGetLastError() << endl;
    exit(0);
} 

send(m_sockfd, (const char *)&m_loginSendMsg, m_loginSendMsg.loginHead.length, 0);

recv(m_sockfd, (char *)&m_loginRecvMsg, sizeof(loginMessageRecv), 0);


----------------------------------------------------下面是结构体

struct baseHandle
{
    int cmdId;
    int userId;
    int length;
    int version;
};

struct loginMessageSend
{
    struct baseHandle loginHead;
    char name[50];
    char passwd[20];
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值