作为工作示例,我们可以处理以下代码:
#include <sys/socket.h>
#define size_t SOCKET
int receive_socket_data(SOCKET sock,//socket representing remote connection
unsigned long& version_number,//validPtr->version #
unsigned long& message_size,//validPtr->sizeof packet
char*& buf // where to copy data from packet
)
{
int nlen = 0;
buf = NULL;
// Receive version_number from the packet
nlen = recv(sock, (char*) &version_number, sizeof(version_number), 0);
if (nlen == 0 || nlen == -1) return ERROR_RECEIVING;
version_number = ntohl(version_number);
// Receive message_size from the entire packet
// (ulong + ulong + sizeof data)
nlen = …Run Code Online (Sandbox Code Playgroud)