开发者社区> 问答> 正文

新手求助-客户端不能连接服务器端

刚在ECS上创建了一个实例(1CPU2G),IP地址为120.76.118.208。在ECS服务器上安装了RUBY,创建了如下服务器端软件并通过ECS服务器端的命令行运行:

require "socket"
def testTCPServer
    server = TCPServer.new 2010 # Server bound to port 2010
  
    loop do
        client = server.accept    # Wait for a client to connect
        client.puts "Hello again !"
        client.puts "Some thing from Server"
        puts client.gets
        client.close
    end  
end
testTCPServer


同时在我自己的电脑上创建并运行如下RUBY程序 :

require 'socket'
  
def testTcpClient
    s = TCPSocket.new '120.76.118.208', 2010
  
    s.puts "Some thing from CLIENT"
    while line = s.gets # Read lines from socket
        puts line         # and print them
    end
    s.close             # close socket when done
end
  
testTcpClient
但是运行的结果显示无法连接,如下。请问是什么问题?

client.rb:4:in `initialize': No connection could be made because the target machine actively refused
it. - connect(2) for "120.76.118.208" port 2010 (Errno::ECONNREFUSED)


我看ECS服务器上的防火墙是关闭的。
谢谢。

展开
收起
ffan 2016-03-30 17:54:43 7938 0
2 条回答
写回答
取消 提交回答
  • 回 1楼dongshan8的帖子
    您好!您看的真仔细。远端绑定的端口改成2010也是一样提示无法连接的。

    -------------------------

    回 3楼dongshan8的帖子
    您好!我在服务器端用netstat -ano查看是Ruby进程(PID=1928)是在2010端口的,如下:


    -------------------------

    Re新手求助-客户端不能连接服务器端
    非常感谢!这样就没问题了。
    2016-03-30 21:34:15
    赞同 展开评论 打赏
  • 旺旺:nectar2。
    楼主您好,

    看上边的内容,是不是远端绑定的端口是2000,而您本地是尝试连接远端的2010端口,

    本地的连接端口是不是有误?

    -------------------------

    回 2楼(ffan) 的帖子
    您好,

    如果按里边的内容理解,那远端的的tcp 2010端口是监听状态。

    如现在用工具来测试,120.76.118.208 的端口是未监听状态喔。

    或许您需重点检查一下远端的设置。如在远端系统里用netstat来查看当前的端口使用情况喔。

    TCP port 2010 (unknown service): NOT LISTENING
    portqry.exe -n 120.76.118.208 -e 2010 -p TCP exits with return code 0x00000001.





    -------------------------

    回 4楼(ffan) 的帖子
    您好,

    或许您可以尝试一下将远端的这段代码:

    require "socket"
    def testTCPServer
        server = TCPServer.new 2010 # Server bound to port 2010

    换成: require "socket"
    def testTCPServer
        server = TCPServer.new("120.76.118.208", 2010) # Server bound to port 2010


    请参考: http://ruby-doc.org/stdlib-2.0.0/libdoc/socket/rdoc/TCPServer.html



    2016-03-30 18:20:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS块储存产品全面解析 立即下载