为什么在Ruby上出现错误?

时间:2018-11-21 20:25:50

标签: ruby sockets url uri protocols

目标 用端口添加(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

红宝石显示此错误

  

回溯(最近通话最近):       2:从main.rb:7:在<main>' 1: from main.rb:7:in打开'   main.rb:7:in'initialize'中:地址已在使用-绑定(2)零端口8080(Errno :: EADDRINUSE)

那么,这意味着什么错误?你能帮我吗?

1 个答案:

答案 0 :(得分:0)

我在那里看到了一些问题。在您的方法fileProtocol中,似乎您要使用内联if(uri来设置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在注释中指出的那样,方法的返回值(最后一行)应将要返回的任何多个值包装在数组中。