为什么收到的缓冲区大小大于最初通过套接字发送的大小
Why is the received buffer size bigger than originally sent via socket?
>我有以下内容:
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 个?
frame
是一个字符指针数组,我假设系统上的字符指针是 4 个字节。这就是为什么sizeof(frame)
是 24 字节。您可能想要一个字符数组。
// array of char, not char *
char frame[sizeof(USHORT) + sizeof(ULONG)];
相关文章:
- 当套接字连接断开时检测C/C++Unix
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 如何在C/C++中用FD_set Unix设置套接字文件描述符
- 套接字读取后,我在缓冲区中看到意外输入
- 如何在CPP中创建应该在Windows和Linux上运行的套接字?
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- (Winsock) UDP 接收工作正常,但同一套接字的发送失败
- MSG_WAITALL的套接字发送得到了 22 EINVAL
- C++套接字客户端到 Python 服务器未创建连接
- 在不知道套接字的情况下关闭网络连接
- C++套接字对不读/写父/子
- 非更新套接字消息
- SIGSEGV on Boost UDP 套接字关闭 - tcache_get at malloc.c.
- 将"uint8_t"(从套接字读取)隐式转换为"char"安全吗
- 为什么收到的缓冲区大小大于最初通过套接字发送的大小
- 如何在套接字编程中发送长度大于缓冲区的消息
- 从套接字返回的文件描述符大于FD_SETSIZE