#!/usr/bin/env perl use strict; use warnings; use IO::Socket::INET qw(CRLF); use IO::Select; my $socket = IO::Socket::INET->new( Listen => 5, LocalPort => 7777, Reuse => 1, ) or die $!; my $reader = IO::Select->new($socket); my @clients; while (1) { for my $ready ($reader->can_read()) { if ($ready == $socket) { my $client = $socket->accept(); $reader->add($client); push @clients,$client; } else { my $buffer; sysread($ready,$buffer,1024); for my $client (@clients) { if ($client != $ready) { # Dont echo to client whose chatting syswrite($client,$buffer); } } } } }