c++ - 如何将多个包裹一起寄送?

标签 c++ c udp winsock winsock2

如何组合一次发送所有内容?

int data = 5;
int data2 = 15;
int data3 = 25;

sendto(sock, (char*)&data, sizeof data, 0, (LPSOCKADDR)&ipAddr, sizeipAddr);
sendto(sock, (char*)&data2, sizeof data2, 0, (LPSOCKADDR)&ipAddr, sizeipAddr);
sendto(sock, (char*)&data3, sizeof data3, 0, (LPSOCKADDR)&ipAddr, sizeipAddr);

最佳答案

您可以创建一个数组并传递数组的地址和大小:

int data[3] = {5, 15  25};

sendto(sock, (char*)&data[0], sizeof(data), 0, (LPSOCKADDR)&ipAddr, sizeipAddr);

但这对于通过网络发送数据来说是非常糟糕的方式。您必须考虑字节顺序和变量大小。

关于c++ - 如何将多个包裹一起寄送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58219568/

相关文章:

c - 数组的值在执行期间随机变化

linux - 我如何确定哪个进程在 Linux 上进行 UDP 通信?

java - UDP消息无法在computer2中成功获取

ssl - 为什么 QUIC 协议(protocol)使用在 TCP 上运行的 TLS 数据包时却被说是基于 UDP 构建的?

c++ - 插入 unordered_map<pair<int,int>, int> 抛出编译器错误

c - 程序打印 Windows 路径?

c++ - 无法使用enable_if和is_base_of来区分模板特化

c - 什么时候应该使用静态内存分配,什么时候应该使用动态内存分配?

c++ - 在 C++ 中使用命名空间时出现 "does not name a type"错误

c++ - 奇怪的 OpenGL 阴影映射行为