Server und Client für TCP und UDP

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von ITobiI, 10.09.2015.

  1. ITobiI

    ITobiI Grünschnabel

    Dabei seit:
    10.09.2015
    Beiträge:
    2
    Zustimmungen:
    0
    Hi,
    ich muss vorweg nehmen das ich zum ersten mit Perl programmiere. Ich soll 4 Programme schreiben TCP-Server und -Client und UDP-Server und -Client und beim TCP-Client kommt immer die Fehlermeldung "invalid argument". Könntet ihr auch in die anderen Skripte rein schauen ob die soweit ok sind? Danke im voraus.

    Code:
    #!/usr/bin/perl -w
    
    #TCP-Server
    
    #Hartych, Tobias EIT 4056051
    #Dreißig, Tobias EIT 40?????
    
    use strict; #strict macht debugging einfacher
    use IO::Socket::INET; #nutze Modul IO::Socket::INET um einen neuen Socket zu erschaffen
    
    #auto-flush
    $| = 1;
    
    #Variablen deklarieren
    my ($socket,$connection,$data);	
    my($peeradr,$peerport);
    
    #bekomme server-ip und server-port von Kommandozeilenparamter
    
    my $ipAddress = $ARGV[0];   #erster Paramenter wird in $ipAddress eingespeichert                                               
    
    my $NPort = $ARGV[1];       #zweiter Paramenter wird in $NPort eingespeichert                                             
    
    $socket = new IO::Socket::INET(                                         
    
    LocalHost => $ipAddress,  #LocalHost von $socket ist eingegebener Paramenter $ipAddress                                                
    LocalPort => $NPort,      #LocalPort von $socket ist eingegebener Paramenter $NPort                                              
    Proto => 'tcp',	  	  #Transportprotokoll: TCP
    Listen => 5,              #maximale Anzahl von Client's ist 5                                   
    Reuse => 1				
    
    );
    die "Fehler beim erstellen des Socket's: $! \n" unless $socket;
    
    
    #Hauptschleife
    while (1)
    
    {
    
    	  print "Warte auf Verbindung mit Client ..\n";
    
    	  $connection = $socket->accept(); #Warte auf Verbindung zum Client / Akzeptiere eingehende Client Verbindung
    
    	  $peeradr = $connection -> peerhost();     
    
    #definiere IP-Adresse von Client       
    
    	  $peerport = $connection -> peerport(); 
        
              print "Verbindung mit client: $peeradr:$peerport\n";  
    
    		                  
    #Lies bis zu 1024 Bytes vom verbundenen Client
    $data = "";
    $connection->recv($data, 1024);
    print "Empfangene Daten: $data\n";
    
    #Schreibe Antwort zu verbundenen Client
    print "Antwort:\n";
    $data = <STDIN>;
    $connection->send($data);
    
    #Informiere Client das Antwort gesendet wurde
    shutdown($connection, 1);
    }
    
    #Schließe Socket -> schliesse Verbindung zum Client
    $socket -> close();	
    
    Code:
    #!/usr/bin/perl -w
    
    #TCP-Client
    #Hartych, Tobias EIT 4056051
    #Dreißig, Tobias EIT 40?????
    
    use strict; #strict macht debugging einfacher
    use IO::Socket::INET; #nutze Modul IO::Socket::INET um einen neuen Socket zu erschaffen
    
    #auto-flush
    $| = 1;
    
    #Variablen deklarieren
    my ($socket,$response,$size,$req);
    
    
    #bekomme server-ip und server-port von Kommandozeilenparamter
    my $peeradr = $ARGV[0];	#erster Paramenter wird in $PeerAdress eingespeichert		
    
    my $peerport = $ARGV[1];	#zweiter Paramenter wird in $PeerPort eingespeichert		
    
    $socket = new IO::Socket::INET
    (		
    PeerHost => $peeradr,    #PeerAddr von $socket ist eingegebener Paramenter $PeerAdress
    PeerPort => $peerport,	 #PeerPort von $socket ist eingegebener Paramenter $PeerPort	
    Proto => 'tcp',		 #Transportprotokoll: TCP
    );
    die "Fehler bei erstellen des Socket's: $!\n" unless $socket;
    
    print "\nVerbindung mit Server erfolgreich!\n";
    
    
    #Daten, welche zum Server gesendet werden
    $req = <STDIN>;
    $size = $socket->send($req);
    print "sende Daten mit einer Laenge von $size\n";
    
    #informiere Server das Daten gesendet wurden
    shutdown($socket, 1);
    
    #erhalte eine Antwort von bis zu 1024 Bytes vom Server 
    $response = "";
    $socket->recv($response, 1024);
    print "Erhaltene Antwort\n";	
    
    #Schließe Socket
    $socket -> close();				
    
    Code:
    #!/usr/bin/perl -w
    
    #UDP_Server.pl
    
    #Hartych, Tobias EIT 4056051
    #Dreißig, Tobias EIT 40?????
    
    #Module importieren
    use strict 'vars'; #strict macht debugging einfacher
    
    use IO::Socket::INET;#Modul wird benoetigt um Netzwerkfunktionen zu nutzen
    
    #auto-flush
    $| = 1;
    
    #Variablen deklarieren
    my ($socket, $message,$peer_address,$peer_port);
    
    #bekomme ip und port von Kommandozeilenparamter
    my $ip=$ARGV[0]; #erste Paramenter wird in $ipaddr eingespeichert
    my $port = $ARGV[1]; #zweite Paramenter wird in $ipaddr eingespeichert
    
    #Socket erschaffen zur Kommunikation mit Client
    $socket=new IO::Socket::INET(
    LocalHost =>$ip,#LocalHost von $socket ist eingegebener Paramenter $ip
    LocalPort=>$port,#LocalPort von $sock ist eingegebener Paramenter $port
    Proto=>'udp'#Transportprotokoll: UDP
    );
    die "Konnte keine Verbindung herstellen: $!\n" unless $socket; #wenn fehlgeschlagen dann schließen
    
    print "UDP Server bereit und wartet auf eine Verbingung mit Port $port\n";
    
    
    
    #Hauptschleife	
    while(1)
    {
    #empfange bis zu 1024 bytes von client, packe empfangene Daten in $message Variable	
    	$socket->recv($message,1024);
    	#definiere ip
    	$peer_address = $socket->peerhost();
    	#definiere port
    	$peer_port = $socket->peerport();
    	#sende $message zurueck zu client
    	$socket->send($message);
    
    }
    #Schließe Socket
    $socket -> close();	
    
    Code:
    #!/usr/bin/perl -w
    
    #TCP-Client
    #Hartych, Tobias EIT 4056051
    #Dreißig, Tobias EIT 40?????
    
    use strict; #strict macht debugging einfacher
    use IO::Socket::INET; #nutze Modul IO::Socket::INET um einen neuen Socket zu erschaffen
    
    #auto-flush
    $| = 1;
    
    #Variablen deklarieren
    my ($socket,$response,$size,$req);
    
    
    #bekomme server-ip und server-port von Kommandozeilenparamter
    my $peeradr = $ARGV[0];	#erster Paramenter wird in $PeerAdress eingespeichert		
    
    my $peerport = $ARGV[1];	#zweiter Paramenter wird in $PeerPort eingespeichert		
    
    $socket = new IO::Socket::INET
    (		
    PeerHost => $peeradr,    #PeerAddr von $socket ist eingegebener Paramenter $PeerAdress
    PeerPort => $peerport,	 #PeerPort von $socket ist eingegebener Paramenter $PeerPort	
    Proto => 'tcp',		 #Transportprotokoll: TCP
    );
    die "Fehler bei erstellen des Socket's: $!\n" unless $socket;
    
    print "\nVerbindung mit Server erfolgreich!\n";
    
    
    #Daten, welche zum Server gesendet werden
    $req = <STDIN>;
    $size = $socket->send($req);
    print "sende Daten mit einer Laenge von $size\n";
    
    #informiere Server das Daten gesendet wurden
    shutdown($socket, 1);
    
    #erhalte eine Antwort von bis zu 1024 Bytes vom Server 
    $response = "";
    $socket->recv($response, 1024);
    print "Erhaltene Antwort\n";	
    
    #Schließe Socket
    $socket -> close();
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. ITobiI

    ITobiI Grünschnabel

    Dabei seit:
    10.09.2015
    Beiträge:
    2
    Zustimmungen:
    0
    Hat sich erledigt :)
     
Thema:

Server und Client für TCP und UDP

Die Seite wird geladen...

Server und Client für TCP und UDP - Ähnliche Themen

  1. Intranator Business Server 6.1 mit aktualisierten Groupware-Clients

    Intranator Business Server 6.1 mit aktualisierten Groupware-Clients: Der von der Tübinger Intra2net AG entwickelte Intranator Business Server ist in Version 6.1 erschienen. Mit der vom Hersteller selbst entwickelten...
  2. Terminal Server Client behält die eingestellten Verbindungen nicht

    Terminal Server Client behält die eingestellten Verbindungen nicht: Moin, Ich habe hier eine Windows-Domänen Umgebung in die ich mich per Terminal Server Client auf CentOS 6.3 an einem Remote-Desktop anmelde. Die...
  3. Terminalserverclient

    Terminalserverclient: Hallo Linux Freunde, arbeite mit Red Hat Deskop 6 und u. a. mit dem Terminalserverclient. Hier ist beim arbeiten die Vollbildmodus besser...
  4. (Junior) Java-Entwickler Client/Server (m/w) gesucht

    (Junior) Java-Entwickler Client/Server (m/w) gesucht: Guten Tag, wir suchen für einen unserer Kunden einen (Junior) Java-Entwickler Client/Server (m/w) Ihre Aufgabe: - Neu- und...
  5. Probleme beim mounten eines Serververzeichnisses auf einen Client

    Probleme beim mounten eines Serververzeichnisses auf einen Client: Hallo zusammen, ich habe folgendes Problem: Wir haben einen NIS-Server mit einem User root und PW xyz. Auf diesem wurde ein Verzeichnis...