gpt4 book ai didi

c - Perl TCP 套接字编程 vs C recv() 函数。我需要跟踪收到的字节数吗?

转载 作者:可可西里 更新时间:2023-11-01 02:47:01 24 4
gpt4 key购买 nike

我熟悉 C 语言的 TCP/IP 编程,但对 Perl 有点陌生。在 C 中,您需要围绕 recv() 语句编写一个循环,因为您不能保证在一个 recv() 语句中从远程服务器获取所有数据。

while(Size != 0)
{
Status = recv(Socket, Buffer, Size, 0);
Buffer = Buffer + Status;
Size = Size - Status;
}

我在 Perl 中看到的几乎所有示例都显示只打印从套接字获得的内容,而没有跟踪接收到的字节。

my $new_sock=$sock->accept();
while(<$new_sock>)
{
print "$_\n";
}
close($sock);

那么,Perl 是否以某种方式确保您获得所有数据而无需计算字节数?

如果答案是否定的,有人可以给我指出一个 Perl TCP 代码的示例,它确实像我上面的 C 示例一样保持跟踪吗?

最佳答案

< > (readline 函数)级别相当高,非常方便。

IO::Socket支持 recv方法。

作为IO::Socket继承自 IO::Handle您可能还对 read 感兴趣或 sysread密切模拟您正在寻找的低级 C 接口(interface)的方法...

关于c - Perl TCP 套接字编程 vs C recv() 函数。我需要跟踪收到的字节数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23204873/

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