在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];
};