溫馨提示×

Ruby TCP/IP通信怎樣建立連接

小樊
82
2024-11-03 03:37:42
欄目: 編程語言

在Ruby中,你可以使用socket庫來建立TCP/IP連接。以下是一個簡單的示例,展示了如何創(chuàng)建一個TCP客戶端和服務(wù)器,并通過它們進行通信:

  1. 首先,創(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
  1. 然后,創(chuàng)建一個TCP客戶端:
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)并打印出來。

0