
z99
New User
Nov 21, 2012, 3:07 AM
Post #1 of 1
(473 views)
|
|
simple chat server
|
Can't Post
|
|
hey everyone,my first post here. i'm new to Perl , i am trying to write a very simple chat server,which will take each client's message and send it back to all other clients,but i'm unable to send the message to other clients,anyway this is my code.any help would be appreciated
use strict; use IO::Socket; use POSIX 'WNOHANG'; my $c=0; my @arr; $SIG{CHLD}=\&h; sub h { while(waitpid(-1,WNOHANG)>0) {} }; $SIG{'INT'}=sub { print "server terminated\n"; exit 0; }; my $svr=IO::Socket::INET->new(LocalPort=>'12345',Listen=>20,Proto=>'tcp',Reuse=>1) or die 'Cant create Socket'; my $clnt; while(1) { next unless $clnt=$svr->accept; $c++; #push(@arr,$clnt); my $child=fork(); my $ip=$clnt->peerhost(); my $port=$clnt->peerport(); print "Connection Aceepted $ip:$port\n"; if($child==0) { $svr->close; wc($clnt); exit 0; print "$ip:$port Left \n"; } $clnt->close; } sub wc { my $clnt=shift; my $msg="$c users(s) online\n"; print $clnt $msg; rcv($clnt); } sub rcv { my $ip=$clnt->peerhost(); my $port=$clnt->peerport(); my $c=shift; while(my $msgin=<$c>) { print "$ip:$port => $msgin \n";} }
(This post was edited by z99 on Nov 21, 2012, 3:08 AM)
|