我正在开发一个Redmine插件,当我点击一个按钮时它连接到一个远程服务器。但我无法连接到服务器。我收到以下错误:
Errno :: ECONNREFUSED无法建立连接,因为目标计算机主动拒绝它。 - 连接(2):
以下是我编写的代码。
_navigation.html.erb
<% if User.current.allowed_to?(:view_repository, @project) -%>
<div style="float: left; width: auto; padding-right: 1%">
<%= button_to_function l(:gerar_build_project), remote_function(:action => 'exec_client', :controller => 'GerarVersao')%>
</div>
|
<% end -%>
gerar_versao_controller.rb
#encoding: utf-8
require 'socket' # Sockets are in standard library
class GerarVersaoController < ApplicationController
unloadable
def exec_client
hostname = 'I put the ip here' #168.192.0.1
port = 8522
s = TCPSocket.open(hostname, port)
s.close # Close the socket when done
end
end
在服务器端(server.rb):
#encoding: utf-8
require 'socket' # Get sockets from stdlib
server = TCPServer.open(8522) # Socket to listen on port 8522
loop { # Servers run forever
puts "Aguardando conexao"
client = server.accept
client.close
}
其他信息:
服务器在Windows上,我有2个客户端(第一个在Windows上,第二个在linux上)都使用上面列出的相同脚本。
防火墙已被禁用。
服务器正在侦听端口8522.我检查了命令“netstat / tvan | more”
服务器IP正确无误。我通过Server Machine中的命令ipconfig检查了它。此外,我尝试使用服务器的名称而不是IP,我也遇到了同样的问题。
重要:我尝试通过另一台服务器建立的另一个端口(SVN服务器使用的端口8443)进行简单连接。连接成功完成但是当我尝试使用另一个尚未使用的端口时,问题再次出现,这进一步改善了我的问题。