簡體   English   中英

將內存中的二進制數據讀入字符串流並通過套接字傳輸

[英]Reading binary data in memory into a stringstream and stream this over a socket

我想知道是否有可能在內存中獲取一段數據,將其讀入輸出字符串流(作為二進制數據)並將其寫入套接字以供客戶端應用程序處理。

我在嘗試這個時遇到的問題如下:

例:

char name[1024] = "Test";
std::ostringstream message (std::stringstream::out | std::stringstream::binary);

len = strlen(name);
message.write(reinterpret_cast<const char*>(&len), sizeof(int));
message.write(test, len*sizeof(char));

我想將此字符串流寫入包含其中所有數據的套接字,但問題是:字符串流寫入僅在第一次執行,在這種情況下寫入4(字符串的長度)而沒有后續寫入。 我在這里錯過了什么嗎?

如果這不是最好的方法,那么最好的方法是什么? 這部分是為了減少緩存內存快照的文件I / O.

提前致謝..

您的代碼(帶小的修改)似乎工作對我來說,這樣你就可以檢查,以確保您正確處理緩沖的二進制數據,即你不假設std::string包含字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM