in reply to Re^2: exchanging strings on the network
in thread exchanging strings on the network

Are you sure those variables contain what you think? put a print in your code and check that. If that doesn't work, post what you have tried so far.
print "PeerAddr:$host:, PeerPort:$port:\n";


holli, /regexed monk/

Replies are listed 'Best First'.
Re^4: exchanging strings on the network
by bahadur (Sexton) on May 10, 2005 at 10:41 UTC
    here is my code this is for the client
    print "Hello welcome to the fsclient\n"; my ($user, $passwd, $host, $port, $command, $numArgs); $numArgs = $#ARGV + 1; $command=$ARGV[7]; my $client = IO::Socket::INET->new( PeerAddr => 'charlie', PeerPort => '70000', Proto => 'tcp',) or die "cannot connect to $port at $host\n"; while(<$client>) { print $_; print $client "Username $user Pass $pass";} close($client) or die "$!\n"; print "connection closed\n";
    this is the code for the server
    #!/bin/perl -w use IO::Socket::INET; use strict; print "Hello welcome to the Fs server\n"; my $server = new IO::Socket::INET ( LocalHost => 'charlie', LocalPort => '70000', Proto => 'tcp', Listen => 1, Reuse => 1, ); die "Could not create socket: $!\n" unless $server; print "Great just created a socket\n"; my $new_sock = $server->accept(); print $new_sock "Fileshare Version 0.1\n"; while(<$new_sock>) { print "Here is what i received from you\n"; print "$_\n";} print "OK its time to close\n"; close($server);
    UPDATE: ok the it is working with double quotes now plus right now the client is receiving the string "Fileshare Version 0.1" . but when it tries to send the user name password to the server it doesnt happen.
      I think your code never enters this loop
      while(<$client>) { print $_; print $client "Username $user Pass $pass";}
      I think what you need is more like this:
      print $client "Username $user Pass $pass"; while(<$client>) { print $_; <STDIN>; #read input from user (changes $_!) print $client $_; }
      For the other part, I don't see why this (code below) would not work. again. if the variables contain what they should. Always check your input!
      $host = $ARGV[2]; #or whatever it is in your ARGV $port = $ARGV[4]; my $client = IO::Socket::INET->new( PeerAddr => $host, PeerPort => $port,


      holli, /regexed monk/
        ok the code is working now. there is a problem with it. the first string from the server reaches the client immediately. how ever the string from the client containing the user name password is not displayed on the server side. but if i control+c and exit than it displays the string. but if i terminate from the server side nothing is displayed.