2015-02-13 5 views
1

Это мой код:IO :: Socket :: INET возвращает пустой сокет

my $server_socket = new IO::Socket::INET 
      (
       LocalPort => 8378, 
       Type  => SOCK_STREAM, 
       Listen => $SOMAXCONN, 
       Proto  => 'tcp', 
       Reuse  => 1 
      ) || die "$!\n"; 

     $serverName = $ENV{COMPUTERNAME}; 
     $socketPortNr = 8378; 
     $clientSocket = new IO::Socket::INET (PeerAddr => $serverName, 
                PeerPort => $socketPortNr, 
                Proto => 'tcp'); 

но $clientSocket пуст.

В чем может быть причина для пустых $clientSocket?

+2

Всегда используйте 'использовать warnings' и' использовать strict' в вашем коде. – serenesat

+1

, когда я использую строгое использование, я получаю ошибки для инициализации переменных и скрипт остановлен. – user2338040

+1

Сначала объявите все свои переменные. – serenesat

ответ

1

Не нужно спекулировать. Как показано в примерах в его документации, IO::Socket::INET->new помещает сообщение об ошибке в [email protected], когда он не работает.

my $client_socket = new IO::Socket::INET->new(
    ... 
) 
    or die("Can't create client socket: [email protected]\n"); 

($! также устанавливается, хотя информация о нем не всегда так точно.)

Смежные вопросы