ruby无法分配请求的地址

时间:2013-05-31 00:22:17

标签: ruby sockets

我已经创建了一个qt程序,可以侦听我服务器上的特定端口。它工作正常。现在我想创建一个简单的ruby程序来做同样的事情。现在我只有一个使用netcat的简单测试服务器,它建立一个网络套接字并接受UDP数据(顺便说一下,这是Ubuntu服务器):

$ sudo nc -l 1720

现在我只是想在Ruby上监听端口:

# network.rb

require 'socket'

socket = UDPSocket.new
socket.bind('64.xxx.xx.xxx', 1720)

这马上提出了这个例外:

network.rb:4:in `bind': Cannot assign requested address - bind(2) (Errno::EADDRNOTAVAIL)

为什么地址不可用?所有这一切都是一个netcat套接字。我的目标是将UDP数据从GPRS设备传入该端口,然后我将让ruby坐在我的ubuntu服务器上侦听该数据,然后对其进行解码,并将其存储到postgresql数据库中。

2 个答案:

答案 0 :(得分:2)

您正在制作服务器或客户端?

你使用过nc,所以我猜你是在做客户。

服务器绑定

客户端是连接:

c = UDPSocket.new

c.connect("127.0.0.1", 1111)

“地址不可用”通常在使用端口时。

或者您可以ping地址fisrt以检查是否可以到达地址

答案 1 :(得分:2)

我通过运行来获得相同的错误:

rails s -b 10.0.0.61

事实证明我的本地IP不是10.0.0.61,这导致了错误。