服务器端关闭套接字前清除不需要的连接

时间:2017-01-04 10:56:30

标签: c++ sockets

在c ++服务器代码中,当第一次读取没有以预期的字符开头时,我需要关闭套接字:

char buff_truc[4] = {0};
read(mysock, buff_truc, sizeof buff_truc) ;
if ( memcmp( buff_truc, "TRUC", 4 ) != 0 ) {
    close(mysock);
}

要求我在关闭之前阅读可用传入数据的全部内容以忽略它们。

我试过像

这样的东西
char buff[8] = {0};
do { 
    lu = read( mysock, buff, sizeof buff); 
} while (lu > 0);

但它等待套接字超时告诉我它读取零字节

1 个答案:

答案 0 :(得分:0)

如果您并不真正关心您收到的数据。(收到的缓冲区不是以&#34开头; TRUC")。你可以关闭套接字。

  

我试过像

这样的东西

您是否在关闭套接字之前尝试过客户端?