-1
struct sockaddr_in* server = (struct sockaddr_in*)sockAddr;
ULONG addr = htonl(server->sin_addr.s_addr);
USHORT port = server->sin_port;
char* frame[sizeof(USHORT) + sizeof(ULONG)];
memcpy(frame, &port, sizeof(USHORT));
memcpy(&frame[2], &addr, sizeof(ULONG));
int result = send(s, (const char*)frame, sizeof(frame), 0);
USHORT
的大小是2個字節,並且ULONG
4,在接收的字節的總結果時爲什麼是24而不是?
假設'字符*'是4個字節,你有其中6的陣列,這將是24看起來你意'炭幀[...]' –
@JamesRoot現在有道理, 謝謝! :) –
只是好奇,爲什麼你發送'sockaddr_in'到同行?爲什麼翻譯'server-> sin_addr.s_addr'的字節順序,而不是'server-> sin_port'呢?對等端已經通過'getpeername()'訪問發送者的'sockaddr_in'。 –