IO :: Socket :: Timeout中的write_timeout

时间:2014-11-23 21:58:28

标签: perl

什么时候有人可以使用IO :: Socket :: Timeout的write_timeout函数?我正在测试以下代码

C:\ Perl64 \ BIN

使用警告;

使用IO :: Socket :: INET;

使用IO :: Socket :: Timeout;

使用IO :: Socket qw(:DEFAULT:crlf);

$ / = CRLF;

my $ object = IO :: Socket :: INET-> new(Proto =>'tcp',PeerAddr =>'www.example.com',PeerPort => '80');

IO :: Socket :: Timeout - > enable_timeouts_on($对象);

$ object - > read_timeout(2);

$ object - > write_timeout(5);

使用此代码,无论我为read_timeout设置什么值,socket都会在到期后关闭。 如果我将读取时间设置为非常大的值,并且我的代码没有将任何内容写入(打印)到套接字中,那么在write_timeout到期后是否应该关闭它?

1 个答案:

答案 0 :(得分:0)

  

使用此代码,无论我为read_timeout设置什么值,socket都会在到期后关闭。如果我将读取时间设置为非常大的值,并且我的代码没有将任何内容写入(打印)到套接字中,那么在write_timeout到期后它是否应该关闭?

这些都不是确定空闲套接字的超时,而是超时操作。也就是说,如果您执行阻塞读取,它将最多阻止您在超时中指定的时间,并阻止写入相同。使用套接字选项SO_RCVTIMEO和SO_SNDTIMEO完成实现,因此您可以查找这些文档以获取更多详细信息。