我可以在linux中查看tcp套接字缓冲区的数据来检查数据是否是我想要的

标签 c linux sockets tcp

我编写了一个程序,在 Linux 中通过相同的文件描述符向同一台服务器发送 3 个请求(假设 A、B、C),然后使用 recv 等待消息(假设 A'、B'、C')返回。

服务器在 3 秒后向我发送消息后,我收到了消息,并且服务器将不按顺序将 A'、B'、C' 发送回给我。

我期望A得到A'并且B得到B',但现在A得到B',因为服务器通过相同的文件描述符发送请求。

当 A 得到 B' 时,A 是否可以继续等待,并且不通过 recv 从套接字缓冲区中删除 B'?

最佳答案

I expect A got A' and B got B', but now A got B' because server send requests through the same file descriptor.

在 TCP 中不可能,除非服务器在单独的线程中处理同一连接上的多个请求,在这种情况下,简单的答案是:不要。

关于我可以在linux中查看tcp套接字缓冲区的数据来检查数据是否是我想要的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43756840/

相关文章:

c - 有时在 C 中修复段错误

linux - 删除文本文件中的单个字符行

c++ - 无法访问类 'boost::asio::basic_io_object<IoObjectService> 中声明的私有(private)成员

c - C 中的符号模拟 C++

c - 逐行读取数字并将其拆分为 C 中的多个变量

linux - control+c 无效

c++ - 如何破坏 C++ 接受函数?

python - App Engine 套接字参数无效

c++ - 我被字符串和数组困住了

linux - 面试题: Are you familiar with linux?