Ruby를 사용하여 간단한 UDP 클라이언트 및 서버를 설정하려고합니다. 코드는 다음과 같습니다Ruby UDP 서버/클라이언트 테스트가 실패했습니다.
require 'socket.so'
class UDPClient
def initialize(host, port)
@host = host
@port = port
end
def start
@socket = UDPSocket.open
@socket.connect(@host, @port)
while true
@socket.send("otiro", 0, @host, @port)
sleep 2
end
end
end
client = UDPClient.new("10.10.129.139", 4321) # 10.10.129.139 is the IP of UDP server
client.start
지금, 나는 리눅스를 실행하는 두 버추얼 머신이 있습니다
require 'socket.so'
class UDPServer
def initialize(port)
@port = port
end
def start
@socket = UDPSocket.new
@socket.bind(nil, @port) # is nil OK here?
while true
packet = @socket.recvfrom(1024)
puts packet
end
end
end
server = UDPServer.new(4321)
server.start
이것은 클라이언트입니다. 그들은 같은 네트워크에 있으며 서로 핑할 수 있습니다.
하지만 기계 A의 UDP 서버를 시작하고 기계 BI에 UDP 클라이언트를 실행하려고하면 다음 오류 얻을 :
client.rb:13:in `send': Connection refused - sendto(2) (Errno::ECONNREFUSED)
나는 오류가에 바인드 방법에 의심을 섬기는 사람. 어떤 주소를 지정해야할지 모르겠습니다. 나는 당신이 LAN/WAN 인터페이스의 주소를 사용해야한다는 것을 읽었지 만 그 주소를 얻는 방법을 모르겠습니다.
아무도 도와 줄 수 있습니까?
가 ''또는 바인드 방법 소켓 :: INADDR_ANY IP로 주소를 사용하여 문제를 해결합니다. 감사! – StackedCrooked