我正在编写一个维护消息队列的 tcp 代理。一旦得到服务器的响应,我需要从队列中弹出前面的消息。问题是我的服务器响应消息的大小很大,读取函数将在收集所有数据之前返回。我该如何处理这个问题?
最佳答案
在没有看到任何代码片段来了解所涉及的数据结构的情况下,听起来您只需要遍历套接字 read() 调用,直到您读取了足够的数据以满足“完整消息”的约束。收到完整消息后,您可以将其放入队列并弹出第一个消息,或者如果它是第一个则返回它。
关于c - 套接字读取在返回前获取所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23750318/