Печать на экран сервера в сокете - PullRequest
1 голос
/ 17 октября 2010

Есть ли какая-либо причина, по которой процесс сервера не выдает никакого вывода в следующем коде?

require 'socket'

server = TCPServer.open(3000)
loop{
    puts "waiting for connection"
    client = server.accept
    puts "connection!"
    client.close
    puts "client closed"
}

Я подключаюсь через:

nc localhost 3000

в среде Windows Cygwin.

Нет вывода на серверный терминал.Должен ли я что-то промыть где-нибудь?

1 Ответ

0 голосов
/ 18 октября 2010

Вы ожидаете, что сервер ответит клиенту "connection!", Это правильно?Если это так, ваша проблема в том, что #puts перенаправляет свой вывод на STDOUT при вызове на Kernel.Если мы вызовем #puts на клиентском TCPSocket, он запишет вывод в TCPSocket IO:

require 'socket'

server = TCPServer.open(3000)
loop{
    puts "waiting for connection"
    client = server.accept
    client.puts "connection!"
    client.close
    puts "client closed"
}

И тогда конец клиента будет выглядеть так:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...