把数据放回套接字缓冲区

简单的问题,似乎没有发现任何有用的东西在这里或谷歌:在Winsock2 API中,是否有可能把数据放回套接字内部缓冲区,当你已经检索到它使用recv()例如,看来它从来没有真正从缓冲区读取?

不,将数据注入到套接字的内部缓冲区是不可能的。 使用MSG_PEEK标志读取数据,而不从套接字的缓冲区中删除数据,或者将套接字数据读入您自己的缓冲区,然后在缓冲区中执行任何您想要的操作。 您可以让您的读取I / O逻辑首先在您的缓冲区中查找数据,然后仅当您的缓冲区没有足够的数据来满足读取操作时才从套接字读取更多的数据。 任何你注入缓冲区的数据都会被随后的读操作看到。

您可以在recv()调用中使用MSG_PEEK标志