Buchgenerator (deaktivieren)

Ruby-Programmierung: Netzwerkprogrammierung

Aus Wikibooks

Wechseln zu: Navigation, Suche

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
Persönliche Werkzeuge