TCP/IP server
Jeg har et lille problem med at lave en tcp/ip server i perl.Dette er hvad jeg har indtil videre..
---------------------------------------------------------------
#!/usr/bin/perl -w
use strict;
use Socket;
my $server_port = 3084;
# make the socket
socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
# so we can restart our server quickly
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1);
# build up my socket address
my $my_addr = sockaddr_in($server_port, INADDR_ANY);
bind(SERVER, $my_addr)
or die "Couldn't bind to port $server_port : $!\n";
# establish a queue for incoming connections
listen(SERVER, SOMAXCONN)
or die "Couldn't listen on port $server_port : $!\n";
# accept and process connections
while (accept(CLIENT, SERVER)) {
print CLIENT "TESTER\n";
chomp (my $response = <CLIENT>);
print $response;
}
close(SERVER);
---------------------------------------------------------------
Hvis jeg telnet'er til serveren sker følgende:
#####################################################
[root@myhost]# telnet localhost 3084
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Dette sender jeg...
TESTER
Connection closed by foreign host.
#####################################################
Som i kan se skriver jeg "Dette sender jeg..." når jeg er connected, men så snart jeg trykker enter retuenerer den "TESTER".
Jeg forstår ikke hvorfor den ikke starter med at skrive "TESTER", ligesom et banner.
Og hvorfor kan jeg ikke se på serveren hvad der kommer ind? Jeg har jo sat den til at printe $response, men der kommer intet.
