我有一个关于套接字编程的问题。我想清除套接字缓冲区。 我尝试了以下代码:
int ret_read = read(return_events[index].data.fd, recv_buffer, sizeof(recv_buffer));
if(-1 == ret_read)
{
if(EAGAIN != errno)
{
printf("read data from %d error occured, errno=%d, %s.\n", return_events[index].data.fd, errno, strerror(errno));
/**
Tag-position, I know buffer is not empty. I wonder clear buffer in code position.The buffer is socket recv buffer, is not recv_buffer.
*/
}
continue;
}
我不想在标签位置再次使用read()
,因为我想将缓冲区设置为空。虽然在Tag-position中使用read()
,但我认为它可能会失败。
除了Tag-position中的read()
之外,有谁能告诉我另一种方法吗?
最佳答案
它与任何其他缓冲区没有什么不同
bzero(recv_buffer, sizeof(recv_buffer));
关于c - 如何清除linux中的socket缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39156133/