在Ruby中,你可以使用socket
庫來建立TCP/IP連接。以下是一個簡單的示例,展示了如何創(chuàng)建一個TCP客戶端和服務(wù)器,并通過它們進行通信:
require 'socket'
# 創(chuàng)建一個TCP套接字
server_socket = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM)
# 綁定IP地址和端口
server_address = '127.0.0.1'
server_port = 12345
server_socket.bind(server_address, server_port)
# 開始監(jiān)聽連接
server_socket.listen(1)
puts "服務(wù)器正在監(jiān)聽端口 #{server_port}..."
# 等待客戶端連接
client_socket, client_address = server_socket.accept
puts "已連接到客戶端 #{client_address}..."
# 接收客戶端發(fā)送的數(shù)據(jù)
data = client_socket.recv(1024)
puts "從客戶端接收到的數(shù)據(jù): #{data}"
# 向客戶端發(fā)送數(shù)據(jù)
client_socket.send("你好,我是服務(wù)器!".encode('UTF-8'))
# 關(guān)閉套接字
client_socket.close
server_socket.close
require 'socket'
# 創(chuàng)建一個TCP套接字
client_socket = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM)
# 連接到服務(wù)器
server_address = '127.0.0.1'
server_port = 12345
client_socket.connect(server_address, server_port)
# 向服務(wù)器發(fā)送數(shù)據(jù)
client_socket.send("你好,我是客戶端!".encode('UTF-8'))
# 接收服務(wù)器發(fā)送的數(shù)據(jù)
data = client_socket.recv(1024)
puts "從服務(wù)器接收到的數(shù)據(jù): #{data.decode('UTF-8')}"
# 關(guān)閉套接字
client_socket.close
首先運行服務(wù)器代碼,然后運行客戶端代碼。服務(wù)器將接收到客戶端發(fā)送的數(shù)據(jù),并向客戶端發(fā)送響應(yīng)??蛻舳藢⒔邮盏椒?wù)器的響應(yīng)并打印出來。