2010-04-20 48 views
3

我正在使用C++,並想知道如果我可以通過網絡(使用基本套接字)發送整個int數組而不做任何事情。或者我必須分開數據並一次發送一個數據?是否可以通過網絡發送數組?

回答

2

你肯定可以發送一個數組,但你可能想做一些額外的工作。在接收端有正確解釋它的問題。例如,如果使用不同的機器體系結構,則可能需要將整數轉換爲網絡順序(例如htonl)。

要記住的另一件事是內存佈局。如果它是一個簡單的整數數組,那麼它將在內存中連續存在,並且單個發送可以成功捕獲所有數據。但是,如果(這可能很明顯),你有一個數組與其他數據,那麼佈局肯定需要考慮。一個簡單的例子就是如果數組有指向其他數據的指針(例如字符串),那麼數組的發送將發送指針(而不是數據),並且對接收器來說是沒有意義的。

3

是的。

數組將按順序排列在內存中,因此您可以自由地執行此操作。只需傳入第一個元素的地址和數據量即可發送所有數據。