在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
方法连接到服务器,然后发送数据包并接收服务器的响应。
请注意,这个示例仅用于演示目的,实际应用中可能需要根据需求进行更多的错误处理和优化。