Ich muss einen Cache-Server machen, einen wie Memcached tatsächlich, also versuche ich einen Telnet-Server zu starten, damit ich Befehle senden kann, die mir dann sagen, ob ich Daten speichern oder lesen muss Schlüssel. Ich dachte daran, dies zu tun, da ich einen TCP-Server implementieren muss und ich Befehle verwenden muss, so dass ein normaler HTTP-Server nicht ausreichen würde (obwohl ich die Daten posten könnte und die Adresse könnte der Befehl sein, bin ich immer noch es herausfinden).Ruby Telnet verweigert Verbindung
Jetzt, nach diesem Hintergrund ist das eigentliche Problem ist, dass ich nicht einmal meinen Telnet-Server starten kann, ist dies der Code, den ich im Web gefunden:
localhost = Net::Telnet::new("Host" => "localhost",
"Timeout" => 10,
"Prompt" => /[$%#>] \z/n)
localhost.login("username", "password") { |c| print c }
localhost.cmd("command") { |c| print c }
localhost.close
ich viel von diesem nicht wirklich verstehen Vielleicht versuche ich, mich mit dem vorhandenen Telnet-Server mit diesem Code zu verbinden, und deshalb funktioniert es nicht. Wie auch immer der Fehler ich, es ist dies immer bin:
C:/Ruby22-x64/lib/ruby/2.2.0/net/telnet.rb:350:in `initialize': No connection could be made because the target machine actively refused it. - connect(2) for "localhost" port 23 (Errno::ECONNREFUSED)
from C:/Ruby22-x64/lib/ruby/2.2.0/net/telnet.rb:350:in `open'
from C:/Ruby22-x64/lib/ruby/2.2.0/net/telnet.rb:350:in `block in initialize'
from C:/Ruby22-x64/lib/ruby/2.2.0/timeout.rb:88:in `block in timeout'
from C:/Ruby22-x64/lib/ruby/2.2.0/timeout.rb:98:in `call'
from C:/Ruby22-x64/lib/ruby/2.2.0/timeout.rb:98:in `timeout'
from C:/Ruby22-x64/lib/ruby/2.2.0/net/telnet.rb:349:in `initialize'
from C:/Users/Bruno/RubymineProjects/Ruby Server/Server.rb:37:in `new'
from C:/Users/Bruno/RubymineProjects/Ruby Server/Server.rb:37:in `<top (required)>'
from -e:1:in `load'
from -e:1:in `<main>'
Process finished with exit code 1
Sie für jede Hilfe oder Spitze Vielen Dank im Voraus, wie gesagt, ich bin immer noch versuchen, herauszufinden, wie dies zu tun.
Das ist ein Client. Wo ist dein Server? Es ist sehr selten, dass Sie eines dieser Programme in freier Wildbahn sehen. – tadman
Ich dachte, ich würde damit einen Server starten. Ich habe es vorher versucht: '@server = TCPServer.new (host, port)' mit "127.0.0.1" 8899 und die übliche Schleife do socket = @ server.accept ... etc. Aber wenn ich versuchte, eine Verbindung zu ihm über den Cmd tun Telnet-Host-Port, aber es schlägt mit dem gleichen Fehler. Ich glaube, ich habe noch nie einen Telnet-Server gestartet, wie kann ich einen mit Ruby starten? –
Sie geben wahrscheinlich nicht den Port auf Ihrem Client an und der Standardwert ist 23. Es ist erwähnenswert, dass Telnet ein Museumsstück ist und Sie wahrscheinlich stattdessen einen regulären TCPSocket verwenden möchten. – tadman