将数据放回套接字缓冲区

时间:2014-06-09 10:52:58

标签: windows sockets winsock2

简短的问题,似乎没有在这里或在Google上找到任何有用的内容:在Winsock2 API中,当您使用recv()检索数据时,是否可以将数据放回套接字内部缓冲区中例如,似乎从来没有真正从缓冲区中读取过来?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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