在Ruby中,可以使用socket
库进行TCP/IP通信
- 创建一个TCP客户端:
require 'socket' # 创建一个TCP套接字 client_socket = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM) # 连接到服务器 server_address = Socket.ip_address_list("0.0.0.0").detect{|intf| !intf.ipv6_private?} server_port = 12345 client_socket.connect(server_address, server_port) # 向服务器发送数据 message = "Hello, Server!" client_socket.write(message) # 接收服务器的响应 response = client_socket.read(1024) puts "Server response: #{response}" # 关闭套接字 client_socket.close
- 创建一个TCP服务器:
require 'socket' # 创建一个TCP套接字 server_socket = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM) # 绑定地址和端口 server_address = Socket.ip_address_list("0.0.0.0").detect{|intf| !intf.ipv6_private?} server_port = 12345 server_socket.bind(server_address, server_port) # 开始监听连接 server_socket.listen(1) puts "Server is listening on port #{server_port}..." # 接受客户端连接 client_socket, client_address = server_socket.accept # 接收客户端发送的数据 message = client_socket.read(1024) puts "Received message: #{message}" # 向客户端发送响应 response = "Hello, Client!" client_socket.write(response) # 关闭套接字 client_socket.close server_socket.close
首先运行服务器代码,然后运行客户端代码。客户端将向服务器发送一条消息,服务器将响应一条消息。这个简单的示例展示了如何使用Ruby的socket
库进行TCP/IP通信。实际应用中,你可能需要处理错误、超时等情况。