2016-04-23 5 views
1

Kürzlich habe ich versucht, einen einfachen TCP-Server zu programmieren, um später in einen Chat-Room zu bauen. Aber jedes Mal, wenn ich starten Sie den Server (server.rb), und dann versuche ich, den Client zu verwenden (client.rb) ich diesen Fehler:Ruby TCP Chat Server

[email protected] C:\Users\Sam\Documents\Coding 
    > client.rb 
    C:/Users/Sam/Documents/Coding/client.rb:6:in `initialize': No connection could be made because the target machine actively refused it. - connect(2) for "localhost" port 2001 (Errno::ECONNREFUSED) 
    from C:/Users/Sam/Documents/Coding/client.rb:6:in `open' 
    from C:/Users/Sam/Documents/Coding/client.rb:6:in `<main>' 

I CMD bin mit dieser laufen und ich habe versucht, Firewall kurz ausschalten . Hier ist der Code für beide der Programme ...

Dies ist server.rb

require 'socket' 

    server = TCPServer.open(2000) # Socket to listen on port 2000 
    loop { 
     Thread.start(server.accept) do |client| 
     client.puts(Time.now.ctime) # Send time to the client 
      client.puts "Closing connection. Bye!" 
     client.close 
     end 
    } 

Hier client.rb:

require 'socket' 

    hostname = "localhost" 
    port = 2000 

    s = TCPSocket.open(hostname, port) 

    while line = s.gets # Reads lines from socket 
     puts line.chop  # And print with platform line terminator 
    end 

    s.close    # Close socket when done 

(. Dieser Code ist von http://www.tutorialspoint.com/ruby/ruby_socket_programming.htm nur damit Sie wissen)

Antwort

0

Ich schätze, es gibt 2 Optionen:

  1. Führen Sie Ihre server.rb vor client.rb.
  2. Sind Sie sicher, dass dies genau die gleichen Dateien sind, die Sie ausführen. Weil die Fehlermeldung besagt, dass sie keine Verbindung zum Port 2001 herstellen kann, während sie sich in beiden Dateien auf 2000 beziehen. Ist es möglich, dass Sie verschiedene Dateien bearbeiten und ausführen? Sie werden überrascht sein, wie häufig das hier auf SO ist :)