使用下面的代码,我从套接字读取数据。另一方面,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)
之类的函数,或者在通过网络发送之前,在传递给它的字符串中添加换行符。我不懂Java,但这似乎很有可能。