我有一个 perl 服务器端套接字,它在客户端套接字上调用 send() 逐个返回字段。
如果代码如下所示,我在客户端读取所有字段时没有问题:
while ($response = <$sock>) {
print "$response";
last if $response eq "END_OF_REQUEST";
}
但是,如果客户端代码如下所示,它将进入循环并且无法正常工作:
while(1) {
$sock->recv($response, 1);
print "$response\n";
last if $response eq "END_OF_REQUEST" ;
}
我同意我可以使用所有字段并在服务器端仅调用一次发送。但我有兴趣知道第二种方法有什么问题。在第二种方法中更改 recv 的 LENGTH arg 是否有效?
在没有关于套接字的适当理论知识的情况下,我开始直接动手。谢谢你的耐心。