这个逻辑有问题,它检测到所有内容并打印bad pkt detected
。
if((buff[0] != 0x0a || buff[0] != 0x0e) && (len == 210))
{
printf("badpkt detected from %s\n", xpi);
} else {
if(mysend(ssl_sd ? ssl_sd[i] : NULL, sd[i], buff, len) <= 0) MULTI_SKIP_QUIT
}
逻辑是拒绝所有长度为 210 的数据包。除非第一个字节是 0x0A 或 0x0E。
这段代码虽然有效:
if((buff[0] != 0x0a) && (len == 210))
{
printf("badpkt detected from %s\n", xpi);
} else {
if(mysend(ssl_sd ? ssl_sd[i] : NULL, sd[i], buff, len) <= 0) MULTI_SKIP_QUIT
}
但我需要两者0x0a
,并且0x0e
是唯一允许的 210 长度数据包。
编辑
我在想什么,也许是睡眠不足。