Thanks to all who answered! I don't need for this process to fork (yet!), but thanks for the pointers. I thought I was reading for new messages from the same client, but instead I was looking for a new client while hanging on my first client. I was missing a whole level of the process. The difference is clear to me now, this makes all kinds of sense. -Chris
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Wednesday, July 02, 2003 11:39 AM To: McMahon, Christopher x66156 Cc: [EMAIL PROTECTED] Subject: Re: TCP/IP question ----- Original Message ----- From: "McMahon, Christopher x66156" <[EMAIL PROTECTED]> Date: Wednesday, July 2, 2003 12:55 pm Subject: TCP/IP question Hello Christopher, > > I think I'm missing a concept here... > I built a very simple TCP/IP server like the one on p. 441 of > the Camel > book. > But my server only ever sees the first message from any given > client.Subsequent messages to my server are ignored. Does anyone > know what I have > to do to get my server to handle more than one message? > > #!/usr/bin/perl > use warnings; > use strict; > my ($server, $server_port, $client, $input); > > use IO::Socket::INET; > > $server_port = 33000; > > $server = IO::Socket::INET->new (LocalPort => $server_port, > Type => SOCK_STREAM, > Reuse => 1, > Listen => 10 ) #or SOMAXCONN > or die "Couldn't be a TCP server on port $server_port: > $! \n"; > > while ($client = $server->accept()) { > my $n = sysread($client,$input,1000); > print "$input\n" ; > next; #THIS DOESN'T HELP > } you should read your loop carefully, in he while condition you will be accepting connections, you then read a line from a socket, print it , and go onto accepting your next connection with out closing the socket. hance your client gets stuck. This calls for a double loop, one for accepting connections and another for reading the data something like this: while ($client = $server->accept()) { while( sysread($client,$input,1000) ){ print "$input" ; } } HTH, Mark G > > _ > This message and any attachments are intended only for the use of > the addressee and > may contain information that is privileged and confidential. If > the reader of the > message is not the intended recipient or an authorized > representative of the > intended recipient, you are hereby notified that any dissemination > of this > communication is strictly prohibited. If you have received this > communication in > error, please notify us immediately by e-mail and delete the > message and any > attachments from your system. >