Ruby-Programmierung: Netzwerkprogrammierung
Aus Wikibooks
Zurück zu Ruby-Programmierung Hauptmenü
Inhaltsverzeichnis |
[Bearbeiten] ein einfacher TCPServer
#!/usr/bin/ruby require 'socket' # 'socket' aus der stdlib einbinden port = 2000 server = TCPServer.open(port) # ServerSocket, das auf Port 2000 hört loop { # Programm wird "nie" beendet client = server.accept # Server wartet auf Verbindung client.puts("Hallo, Welt!") # String an den Client schicken client.close # Verbindung beenden }
[Bearbeiten] ein fortgeschrittener TCPServer
#! /usr/bin/env ruby require 'thread' require 'socket' Port = 1111 server = TCPServer.open(Port) #TCP server socket loop { Thread.start(server.accept) do |socket| #für jeden Client der sich verbindet einen neuen Tnread starten socket.puts "Hallo, Welt!" #Nachricht an den Client senden socket.close end }
[Bearbeiten] ein einfacher TCPClient
#!/usr/bin/ruby require 'socket' # 'socket' aus der stdlib einbinden host = 'localhost' # ='127.0.0.1' port = 2000 client = TCPSocket.open(host, port) # neues Socket, dass versucht sich mit einem Server (127.0.0.1:2000) zu verbinden line = client.gets # Nachricht empfangen (eine Zeile) puts line # Nachricht ausgeben client.close # Socket schließen
[Bearbeiten] ein einfacher Portscanner
#!/usr/bin/ruby require 'socket' # 'socket' aus der stdlib einbinden host = '127.0.0.1' # IP des Zieles (Host) portmax = 5000 # Portnummer bis zu der gescannt werden soll port = 0 # Portnummer bei der scan beginnt wird while(port<=portmax) begin #Handling Exceptions client = TCPSocket.open(host, port) client.close puts "#{port}/tcp offen" # wenn Port offen (kein fehler) rescue SystemCallError #Handling Exceptions end #Handling Exceptions port = port+1 end