Thread chat client (20 answers)
Opened by tim at 2009-09-16 14:01

Gast wer
 2009-09-16 16:17
#125871 #125871
ungetestet:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
my $sock = IO::Socket::INET->new("loclahost:1111");
my $text='';
while()
{
  my $server='';
  eval{
    local $SIG{ALRM}=sub{die;};
    alarm(1);
    $server = <$sock>;
    alarm(0);
  };

  chomp($server);
  if($server =~ 'm(.*?))
  {
    my $msg = $2;
    print "$msg\n";
  }

  eval{
    local $SIG{ALRM}=sub{die;};
    local $/=undef;
    alarm(1);
    my $txt;
    while(read(STDIN,$txt,1))
    {
      last if($txt=~/[\r\n]/);
      alarm(1);
      $text .= $txt;
    }
    alarm(0);
  };

  if($text =~ 'say (.*)')
  {
    my $msg_send = $1;
    print $sock "m($msg_send)\n";
    $text='';
  }
}


Sollte eine Sekunde auf eine Servermeldung warten und eine Sekunde auf Input.

View full thread chat client