Я написал пример кода сокета perl. Клиент и сервер работают на одном компьютере. В коде сервера при принятии клиентского соединения он отображает имя хоста клиента как «anates». Я не понимаю, откуда он выбирает это имя. Поскольку я нигде не установил это имя.
Server.pl
my $client_addr;
while ($client_addr = accept(NEW_SOCKET, SOCKET)) {
# send them a message, close connection
print("CCCCLLLII : $client_addr\n");
my($port2, $iaddr) = sockaddr_in($client_addr);
print("$port2\n");
print("$iaddr\n");
$iaddr = inet_ntoa($iaddr);
print("$iaddr\n");
my $name = gethostbyaddr($client_addr, AF_INET );
print NEW_SOCKET "Smile from the server";
print "Connection recieved from $name\n";
close NEW_SOCKET;
}
Client.pl
connect( SOCKET, pack_sockaddr_in($port, inet_aton($server)))
or die "Can't connect to port $port! \n";
my $line;
while ($line = <SOCKET>) {
print "$line\n";
}
close SOCKET or die "close: $!";
Выход:
$ perl server.pl
SERVER started on port 7890
CCCCLLLII : �r
48498

127.0.0.1
Connection recieved from anantes-158-1-218-114.w2-0.abo.wanadoo.fr
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 kaushik-Inspiron-5547
$ hostname
kaushik-Inspiron-5547
Откуда код, получающий имя anates, я не получаю.
Я ожидал, что имя хоста будет напечатано как kaushik-Inspiron-5547