从套接字读取一行

时间:2009-10-20 20:11:47

标签: c linux sockets

我正在编写一些代码,当代码行以换行符或回车符结束时,我需要从套接字中获取一行代码。该线应存放在缓冲区中。

 n = recv(sock, &ch, 1, 0);
  if (n > 0)
  {
   if (ch == '\r')
   {
       // do stuff
   }
     //
  }
   //

我在一段时间内使用这样的代码,但它没有任何线索我怎么能这样做。

已编辑:我想从套接字中读取一行并返回进行解析。这应该是[每行阅读。

2 个答案:

答案 0 :(得分:3)

这类似于最近一个题为“getline over a socket”的问题。

答案是你不应该这样做。如果客户端没有发送下一行,会发生什么?你的程序会挂起。

在您的代码段中,您似乎没有检查错误代码。这些将表明您的代码“无法正常工作”,并指出从哪里开始寻找问题。

答案 1 :(得分:1)

1)也许你有回车/换行?

2)也许ch溢出了?

3)也许你的流是二进制的,\ r \ n对非EOL有效吗?