2010-05-06 3 views
1

사용자가 호스트와 IO :: Socket을 사용하여 연결할 외부 호스트의 포트 번호를 입력 할 수있게 해주는 펄 프로그램을 만들려고합니다. 그것은 내가 프로그램을 실행하고 호스트와 포트를 입력 할 수는 있지만 결코 연결되지 않고 "c : \ users \ USER \ Documents \ code \ perl \ sql.pl 18 번 줄 2에 [host]에 연결할 수 없습니다. . " 아래에 표시된이 코드로 내가 뭘 잘못하고 있니? 또한 호스트에 IP 주소를 입력 할 수 있습니까? 호스트 이름이나 IP 주소가 될 수 있습니다. 무리 감사! 아래 코드Perl에서 IO :: Socket을 사용하여 사용자 입력

use IO::Socket 
print "Host to connect to: "; 
chomp ($host = <STDIN>); 
print "Port to connect with: "; 
chomp ($port = <STDIN>); 
while(($port > 65535) || ($port <= 0)){ 
    print "Port to connect with [Port > 0 < 65535] : "; 
    chomp ($port = <STDIN>); 
    } 
print "\nConnecting to host $host on port $port\n"; 
$socket = new IO::Socket::INET (
            LocalHost => '$host', 
            LocalPort => '$port', 
            Proto => 'tcp', 
            Listen => 5, 
            Reuse => 1 
           ); 
die "Could not connect to $host"; 

답변

1

설정이인 경우 수신 대기 포트 (서버라고도 함)가 생성됩니다. 클라이언트를 만들려면 다음을 시도하십시오.

$socket = IO::Socket::INET->new(
       PeerAddr => $host, 
       PeerPort => $port, 
       Proto => 'tcp' 
     ); 

다음은 IO::Socket::INET에 대한 전체 설명서입니다.

+0

아마'$ host'와'$ port'에서 작은 따옴표를 지우고 싶을 것입니다 :) – friedo

+0

고마워요. –