2016-12-24 3 views
1

Ich lerne Ruby-Socket-Programmierung und ich bin auf Linux-Betriebssystem (Ubuntu 16.04 um genau zu sein).Ruby-Socket-Verbindung abgelehnt am 0.0.0.0:8080

Der folgende Code:

require 'socket' 

socket = TCPSocket.new('0.0.0.0', 8080) 
client = socket.accept 

puts "New client! #{client}" 

client.write("Hello from server") 
client.close 

gibt mir die folgende Fehlermeldung:

sock2.rb: 3: in initialize': Connection refused - connect(2) for "0.0.0.0" port 8080 (Errno::ECONNREFUSED) from sock2.rb:3:in neuen ' von sock2.rb: 3: in `'

Sollte ich eine andere IP und einen anderen Port verwenden? Oder muss ich eine Art Konfiguration auf meinem Unix-System vornehmen, damit der Client und der Server miteinander kommunizieren können.

Antwort

3

TCPSocket.new versucht, eine Verbindung zu dem in den Argumenten angegebenen Host herzustellen. Es sieht aus wie Sie versuchen, auf diesem Port lauscht einen Server einzurichten, für die Sie TCPServer stattdessen verwenden sollten:

socket = TCPServer.new('0.0.0.0', 8080) 

können Sie dann mit einem anderen Client auf diesem Server verbinden. Dieser Client könnte möglicherweise TCPSocket verwenden.

+0

Vielen Dank gerade versucht es und es funktioniert. Vielen Dank! –