LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: Snoopy

perl的问题???

[复制链接]
发表于 2003-5-31 13:41:25 | 显示全部楼层
my $socket = new IO::Socket::INET ( 'Localhost'=>'127.0.0.1' , 'LocalPort'=>80 , 'Listen'=>1 , 'Proto'=>'tcp' , 'Reuse'=>1 );
打开socket

while (my $new_socket = $socket->accept() ) {
接受连接(作为服务端)
while (my $buffer=<$new_socket> )
从socket中读客户发送的消息
发表于 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
 楼主| 发表于 2003-6-1 15:24:39 | 显示全部楼层
你说数不用像c那样定义,那perl的数是占多少内存?
发表于 2003-6-1 15:53:52 | 显示全部楼层
Perl 是一个Interpretive language,没有fixed type,同一variable可以一会是
interger,一会是string.
 楼主| 发表于 2003-6-2 20:52:18 | 显示全部楼层
为什么#line 500000 "parsing Snoopy engine"
die "Fatal"的结果是

[root@Snoopy learns]# perl 1
Fatal at parsing Snoopy engine line 41248.

后面怎么变成41248了???
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表