[問題]socket echo server
剛入門寫socket程式
遇到client close socket時,server會自動關閉
想請問板上高手問題癥結
謝謝
server.pl
----------------------------------------------------------------------
#!/usr/bin/perl -w
use Socket qw(INADDR_ANY PF_INET SOMAXCONN SOCK_STREAM sockaddr_in);
use strict;
my $proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
my $port = shift || 5566;
my $paddr = sockaddr_in($port, INADDR_ANY);
bind(SOCK, $paddr) or die "bind: $!";
listen(SOCK, SOMAXCONN) or die "listen: $!";
my $msg = '';
my $test;
my $temp = '';
while($test=accept(CLIENT, SOCK)) {
while($test){
recv(CLIENT,$msg,32,0);
chomp($msg);
send(CLIENT,$msg,0);
}
close CLIENT;
}
client.pl
-----------------------------------------------------------------------------
#!/usr/bin/perl -w
use Socket qw(AF_INET SOCK_STREAM inet_aton sockaddr_in);
$proto = getprotobyname('tcp');
socket(SOCK, AF_INET, SOCK_STREAM, $proto) or die "socket: $!";
$addr = inet_aton('localhost');
my $port = shift || 5566;
$paddr = sockaddr_in($port, $addr);
connect(SOCK, $paddr) or die "connect: $!";
my $count = 0;
my $msg;
my $rev='';
while(<>){
$msg=$_."\0";
send(SOCK,$msg,0);
last if $_ eq "exit\n";
recv(SOCK,$rev,1024,0);
print "$rev\n";
}
close(SOCK) || die "close: $!";
麻煩各位高手幫我看看是哪裡出問題?
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.188.90
Perl 近期熱門文章
PTT數位生活區 即時熱門文章