mond-tech [perl]AnyEvent - echoサーバ 忍者ブログ
焼肉屋さんが大好きです。いや、そうでも無い。 たぷたぷになってきてピンチです。
19
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

AnyEventのechoサーバサンプル


#!/usr/bin/perl

use AnyEvent;
use AnyEvent::Socket;
use IO::Handle;

$| = 1;

my $HOST = '192.168.1.200';
my $PORT = 9999;

tcp_server $HOST, $PORT, sub {
my ($sock, $host, $port) = @_;
autoflush $sock 1;
print "Client connected: $host($port)\n";
my $watcher; $watcher = AnyEvent->io(
fh => $sock,
poll => 'r',
cb => sub {
my $data = <$sock>;
$data =~ s/\r?\n//g;
if ($data eq 'quit') {
print "Client disconnected: $host($port)\n";
undef $watcher;
return;
}
print "$data by $host($port)\n";
print $sock "[$data]\n";
},
);
}, sub {
my ($fh, $host, $port) = @_;
print "Echo server is listening on $host($port)\n";
};
AnyEvent->condvar->recv;


WEBには、sysread、syswriteのサンプルしかないんだよね。
バッファリングされちゃうからsys*系使うんだろうけどautoflushしちゃえば良い。
PR
お名前
タイトル
文字色
URL
コメント
パスワード
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback URL
Copyright c mond-tech All Rights Reserved
忍者ブログ / [PR]
にほんブログ村 IT技術ブログ Webサイト構築へ