[問題]socket echo server

看板Perl作者 (達爾特)時間12年前 (2012/11/28 20:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
剛入門寫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
文章代碼(AID): #1GjWCSIW (Perl)
文章代碼(AID): #1GjWCSIW (Perl)