Почему ошибки появляются в Ruby? - PullRequest
0 голосов
/ 21 ноября 2018

Цель Добавить (URI, URL) с портом.

 # Help for carlos-romero   
 # https://stackoverflow.com

 # Help for mu-is-too-short
 # https://stackoverflow.com

require 'uri'
require 'socket'

url = 'file://C://'

 class Class1
    def fileProtocol( url )
        uri = URI(url) if scheme = uri.scheme
      puts fileProtocol(url)
    end
  end

 class Class2
     def fileProtocolPort( server )
         server = TCPServer.open(8080)
           for i in  0..5
           client = server.accept
             client.puts(Time.now.ctime)
            client.puts "Closing the connection. Bye!"
            client.close
            end
            end
            end

ruby ​​показать эти ошибки

Traceback (последний последний вызов): 2: из main.rb: 7: в <main>' 1: from main.rb:7:in открыть'main.rb: 7: in `initialize': адрес уже используется - bind (2) для nil-порта 8080 (Errno :: EADDRINUSE)

Итак, что это означает, что эта ошибка?Вы можете мне помочь?

1 Ответ

0 голосов
/ 21 ноября 2018

Я вижу там несколько проблем.В вашем методе fileProtocol кажется, что вы устанавливаете значение uri со встроенным if (do X if condition), так что end сразу после if не требуется.Кроме того, = должно быть ==

Я полагаю, вы хотите что-то вроде этого:

def fileProtocol( url , server ) 
   uri = URI(url, server) if scheme == uri.scheme  
   [url, server]
end

puts fileProtocol(url, server) 

РЕДАКТИРОВАТЬ: Кроме того, как @muistooshort указал в комментариях, возвращаемое значениеметод (его последняя строка) должен обернуть любые множественные значения, которые вы хотите вернуть, в массив.

...