使用下面的代码,我从套接字读取数据。另一方面,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,但这似乎很有可能。

09-10 04:42
查看更多