当前位置: 技术问答>linux和unix
perl的socket有缓冲区吗?
来源: 互联网 发布时间:2016-04-21
本文导语: 部分程序代码如下: #!/usr/bin/perl -w use strict; use IO::Socket; use DBI(); use Config::INI::Simple; …… …… $sock = IO::Socket::INET->new( PeerAddr => $addr, PeerPort => $port, Proto => 'tcp') or die "Can't connect: $!n"; ……...
部分程序代码如下:
#!/usr/bin/perl -w
use strict;
use IO::Socket;
use DBI();
use Config::INI::Simple;
……
……
$sock = IO::Socket::INET->new(
PeerAddr => $addr,
PeerPort => $port,
Proto => 'tcp')
or die "Can't connect: $!n";
……
……
while($buf = ){
#在这里取得服务器传过来的事件消息然后进行相应的处理
}
现在的问题就是在while语句中的处理有时候会不执行,也就是服务器有事件发生了,这边没有收到信息,也就是说有些数据没收到。(小量测试没有这个问题,数据量比较大的时候会出现这个问题,socket连接的是远程机器(服务器)linux下)
是不是socket满了,还是什么原因,有知道的吗,谢谢~
#!/usr/bin/perl -w
use strict;
use IO::Socket;
use DBI();
use Config::INI::Simple;
……
……
$sock = IO::Socket::INET->new(
PeerAddr => $addr,
PeerPort => $port,
Proto => 'tcp')
or die "Can't connect: $!n";
……
……
while($buf = ){
#在这里取得服务器传过来的事件消息然后进行相应的处理
}
现在的问题就是在while语句中的处理有时候会不执行,也就是服务器有事件发生了,这边没有收到信息,也就是说有些数据没收到。(小量测试没有这个问题,数据量比较大的时候会出现这个问题,socket连接的是远程机器(服务器)linux下)
是不是socket满了,还是什么原因,有知道的吗,谢谢~
|
socket本身是属于OS层面的,有没有缓冲看OS,而不是看perl。肯定是有缓冲区的
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。