使用下面的代码我从套接字读取数据。另一方面,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