问题描述
我正在用 C++ 编写一个 HTTP 服务器,使用 TCP 套接字在客户端和服务器之间进行通信。
在使用 Linux 终端向服务器发送请求时,我注意到每次按 Enter
时,服务器上的 read()
都会返回(它读取到 {{1} } 并返回)。
这种行为“正常”吗?我没有在任何地方找到它。
编辑:我使用 telnet 作为客户端和阻塞读取/接收
解决方法
只要有数据可用,就会返回阻塞的 read
或 recv
。如果您在在终端上用作客户端的任何内容(即 netcat、telnet 或类似的)上输入 Enter
,它很可能(取决于实际客户端)直接发送此 \r\n
到服务器,它将导致立即成功返回 read
/recv
。