使用下面的代碼我從套接字讀取數據。另一方面,Java客戶端發送字符串數據。但在讀取數據時,字符串的末尾會出現一個附加的\ n。任何人都可以解釋爲什麼會發生。套接字從Java客戶端讀取 n末尾
代碼:
unsigned char buf[100];
rd=read(newsockfd,buf,100);
char cmd[30];
sprintf(cmd,"%s",buf);
結果:
buf->"DATA\n"
cmd->"DATA\n"
從客戶端,如果我發送 「DATA」 然後我在服務器端收到 「DATA \ n」。任何人都可以解釋這個原因嗎?以及如何提取我發送的確切數據。
難道是另一邊的Java客戶端在它發送的數據的末尾添加了換行符?我可以很容易想象一個像'sendLine()'這樣的函數,該函數接受'String'作爲參數,並自行決定在最後添加一個換行符。 – ereOn
如果您將兩個緩衝區初始化爲C端的空字符,該怎麼辦? – Fred
@ ereOn是的,我正在使用println(「str」),這可能是原因。非常感謝您提供有價值的信息。 – Haris