是否可以通过网络发送阵列?

时间:2010-04-20 03:12:22

标签: c++ networking

我正在使用C ++,并想知道我是否可以通过网络(使用基本套接字)发送整个int数组而不做任何事情。或者我是否必须将数据拆分并一次发送一个?

2 个答案:

答案 0 :(得分:3)

是。

数组将按顺序排列在内存中,以便您可以自由地执行此操作。只需传入第一个元素的地址和数据量,您就可以发送所有数据。

答案 1 :(得分:2)

你绝对可以在一次发送中发送一个数组,但是你可能想要做一些额外的工作。在接收端正确解释它存在问题。例如,如果使用不同的机器体系结构,您可能希望将整数转换为网络顺序(例如,htonl)。

要记住的另一件事是内存布局。如果它是一个简单的整数数组,那么它在内存中是连续的,单个发送可以成功捕获所有数据。但是,如果(这可能很明显),你有一个包含其他数据的数组,那么布局肯定需要考虑。一个简单的例子是,如果数组有指向其他数据(如字符串)的指针,那么数组的发送将发送指针(而不是数据),对接收者来说没有意义。