好的,我正在编写一个连接到服务器的软件,发送一些信息,然后用bool响应。我的问题是没有任何东西通过recv
传递给我的变种。我使用的是winsockx
标头,它是为{Xbox 360>设计的winsock
版本。它的工作方式与winsock
相同。这是我正在使用的代码......
VOID Auth()
{
ConnectSocket = INVALID_SOCKET;
while (ConnectSocket == INVALID_SOCKET)
ConnectSocket = ConnectTo(Server, 9001);
ServerRequest.Version = 1;
ServerRequest.Key = 9001;
ServerRequest.Req = 1;
send(ConnectSocket, (PCHAR)&ServerRequest, 0xC, 0);
BYTE CPUKey[0x10];
UINT64 addr = 0x8000000000000000ULL | ((DWORD)MmGetPhysicalAddress(CPUKey) & 0xFFFFFFFF);
HvxGetVersions( 0x72627472, 5, 0x20, addr, 0x10 );
send(ConnectSocket, (PCHAR)CPUKey, 0x10, NULL);
Sleep(500);
BYTE* recvPacket = (BYTE*)malloc(0x4);
recv(ConnectSocket, (PCHAR)recvPacket, 0x4, NULL);
Authed = *(BOOL*)recvPacket;
Disconnect();
}
我知道ConnectTo
方法有效,因为我有朋友使用它而send
有效,因为客户端确实向服务器报告,唯一不起作用的是{{1} }。
为了测试服务器实际上是在发送数据,我在C#中制作了一个挑战欺骗者,它确实从服务器接收数据。