在Ruby中,使用UDP通信處理數據包需要使用Socket
類。以下是一個簡單的示例,展示了如何創建一個UDP服務器和客戶端,以及如何發送和接收數據包。
UDP服務器:
require 'socket'
# 創建一個UDP套接字
server_socket = UDPSocket.new
# 綁定到本地地址和端口
server_socket.bind('0.0.0.0', 12345)
puts "Server is listening on port 12345..."
while true
# 接收數據包
data, address = server_socket.recvfrom(1024)
puts "Received message from #{address}: #{data}"
# 發送響應給客戶端
server_socket.send("Response from server!".encode, 0, address)
end
UDP客戶端:
require 'socket'
# 創建一個UDP套接字
client_socket = UDPSocket.new
# 連接到服務器
client_socket.connect('127.0.0.1', 12345)
# 發送數據包給服務器
client_socket.send("Hello, server!".encode, 0)
# 接收服務器的響應
response, _ = client_socket.recvfrom(1024)
puts "Received response from server: #{response.decode}"
# 關閉套接字
client_socket.close
在這個示例中,我們首先創建了一個UDP套接字,然后將其綁定到本地地址和端口。服務器使用recvfrom
方法接收數據包,并在接收到數據包后發送響應給客戶端。客戶端使用connect
方法連接到服務器,然后發送數據包并接收服務器的響應。
請注意,這個示例僅用于演示目的,實際應用中可能需要根據需求進行更多的錯誤處理和優化。