0
我想發送短信的海量對象在UDP上我自己的定義my_message
的:在一個UDP消息中發送兩個數據塊而不復制塊?
class my_message
{
private:
// Message header
header_type header;
// Message text
byte * data;
public:
...
}
但是,如果我把這個類的一個實例,頭部會沿着側指針(不是真正的發數據)。所以,簡單的想法是在發送它們之前將頭部和數據複製到緩衝區中。如您所知,UDP在消息而不是流上操作,這意味着sendto()
和recvfrom()
之間存在一對一的關係。即這是不可能的sendto()
兩次,並在一個recvfrom()
接收數據。
我的問題:將數據複製到新的緩衝區會降低我的應用程序的效率。
人們會想到將發送分爲發送頭和發送數據。這將不起作用,因爲UDP消息在接收時沒有排序。
我的問題:有沒有辦法通過從兩個不同的來源閱讀消息來告訴應用程序sendto()
?
是否存在阻止您閱讀sendmsg()的手冊頁的問題,該頁面中有您自己使用sendmsg()的示例?你的英語看起來不錯,那麼爲什麼你想等一個人向你解釋你可以從sendmsg()的手冊頁上看到的同樣的東西? –
如果sendmsg()的文檔中有某些不清楚的地方,那麼你當然可以問一個關於它的具體問題。您是否知道這個稱爲「www.google.com」的神奇網站,您可以在其中輸入「sendmsg示例」,並獲得數百個示例的鏈接。我在這裏閱讀的一半問題可以通過簡單的谷歌搜索來回答,這真的很有趣。 –
您也可以使用'writev()'來達到此目的。 – EJP