用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - perl代码库

perl 通过TCP通信

2012-10-14 作者: 神马举报

[perl]代码库

#-----------------------------
print SERVER "What is your name?\n";
chomp ( $response = <SERVER> );
#-----------------------------
defined ( send ( SERVER, $data_to_send, $flags ) )
or die "Can't send : $!\n";

recv ( SERVER, $data_read, $maxlen, $flags )
or die "Can't receive: $!\n";
#-----------------------------
use IO::Socket;

$server->send ( $data_to_send, $flags )
or die "Can't send: $!\n";

$server->recv ( $data_read, $flags )
or die "Can't recv: $!\n";
#-----------------------------
use IO::Select;

$select = IO::Select->new();
$select->add ( *FROM_SERVER );
$select->add ( $to_client );

@read_from = $select->can_read ( $timeout );
foreach $socket ( @read_from )
{
# read the pending data from $socket
}
#-----------------------------
use Socket;
require "sys/socket.ph";
# for &TCP_NODELAY

setsockopt ( SERVER, SOL_SOCKET, &TCP_NODELAY, 1 )
or die "Couldn't disable Nagle's algorithm: $!\n";
#-----------------------------
setsockopt ( SERVER, SOL_SOCKET, &TCP_NODELAY, 0 )
or die "Couldn't enable Nagle's algorithm: $!\n";
#-----------------------------
$rin = '';
# initialize bitmask
vec ( $rin, fileno ( SOCKET ), 1 ) = 1;
# mark SOCKET in $rin
# repeat calls to vec() for each socket to check

$timeout = 10;
# wait ten seconds

$nfound = select ( $rout = $rin, undef, undef, $timeout );
if ( vec ( $rout, fileno ( SOCKET ),1 ) )
{
# data to be read on SOCKET
}
#-----------------------------


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...