2012-12-09 36 views
-1

我正嘗試在C++中編寫一個字符數組到一個套接字。但是,我希望寫入的數據是原始圖像數據,因此包含'\ 0',它表示字符串的終止。無論如何發送所有的數據,包括'\ 0'?在C++中寫入() - 包含' 0'的數據

更新:這個問題是在使用strlen(),不write()

+0

將它看作1個「BYTE」的二進制數據,而不是ASCII字符。 – LihO

回答

4

send()函數不關心空字節。它發送你告訴它發送的長度。

0

沒有寫空字符到TCP串問題。

我個人聽說沒有TCP API將其視爲終止任何事情。通常情況下,你指定緩衝區和長度,而其他一切都不重要。

1

send()write()取一個void*緩衝區和要寫入的字節數。因此,NUL終止符的問題不在API級別出現。

就應用程序代碼而言,只是不要使用C字符串來表示二進制數據,你會沒事的。

相關問題