C++ 如何一起发送多个包?
如何组合以同时发送所有内容C++ 如何一起发送多个包?,c++,c,udp,winsock,winsock2,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, (cha
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);
但这对于通过网络发送数据来说是非常糟糕的方式。您必须考虑字节顺序和变量大小。您可以使用
int
s数组。但是,如果发送方和接收方对整数使用不同的字节顺序,或者对int
使用不同的大小,则可能会出现其他问题。请先创建缓冲区,或者创建struct
以对数据进行分组?如果您正在学习套接字的工作原理,则可以。对于更大规模的消息传递,请使用协议缓冲区、平面缓冲区、capnproto或thrift。您可能对它感兴趣。@DavidRanieri好的,但我喜欢您的示例,但我不能使用它:|这是我需要的,谢谢,图的顺序。:)