gpt4 book ai didi

perl - Perl套接字客户端无法识别消息结尾

转载 作者:行者123 更新时间:2023-12-03 12:03:46 25 4
gpt4 key购买 nike

我正在运行一个简单的Perl套接字客户端,该客户端查询服务器,然后在遇到关键字或短语时尝试关闭套接字。

...
local $\ = "\x{0d}";
while($line = <$sock>){
print $line."\n";
last if ($line =~ /C6/);
}
...
close($sock);

我很乐意在(0x0d)或“C6”字符串上终止-它们都终止了消息。我正在用Wireshark监视它,并且这两个触发器都在消息末尾发生,但是我无法中断while循环,无论是中断还是最后一次,也不会打印$ line。

有想法吗? TIA

最佳答案

我认为问题的根源在于您已经设置了$\(它是输出记录分隔符),而不是$/(它是输入记录分隔符)。

因此,您的while正在等待\n出现,然后再将$line传递到循环的其余部分。

但是,如果不这样做,套接字上还有一个缓冲和自动刷新的问题。

而且...当您说要使用Wireshark进行监视时,如何确定这些值是数据包内容有效负载的一部分,而不是数据包的一部分?您实际上在任何时候都从服务器发送了\n作为数据包的一部分吗?

关于perl - Perl套接字客户端无法识别消息结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47588965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com