CRLF 导致 read() 从套接字到 return

CRLF causes read() from socket to return

我正在用 C++ 编写 HTTP 服务器,使用 TCP 套接字在客户端和服务器之间进行通信。

在使用我的 Linux 终端向服务器发送请求时,我注意到每次按下 Enter 时,服务器 returns 上的 read() (它读取到 \r\n 和 returns)。

这种行为“正常”吗?我在任何地方都没有发现它。

编辑:我使用 telnet 作为客户端和阻塞 read/recv

只要数据可用,就会阻塞 readrecv return 秒。如果你在 上输入 Enter 无论你在终端上使用什么作为客户端 (即 netcat、telnet 或类似的)它很可能(取决于实际的客户端)直接发送这个 \r\n 到服务器,它将立即导致 return of read/recv.