1
假設我有以下一段代碼。如何找出TCP連接的端口號
server = TCPServer.new(3200)
client = server.accept()
如何找出客戶端向我發送消息的端口號是?我已經嘗試了client.peeraddr和client.addr,並且他們都沒有給我正確的端口號。
假設我有以下一段代碼。如何找出TCP連接的端口號
server = TCPServer.new(3200)
client = server.accept()
如何找出客戶端向我發送消息的端口號是?我已經嘗試了client.peeraddr和client.addr,並且他們都沒有給我正確的端口號。
客戶端連接到的端口是3200.並且,連接創建的客戶端端口對於每個連接都是隨機的,由OS從未使用的端口給出。
client.peeraddr
爲您提供了一個對應於struct addrinfo
的數組。對於AF_INET,它看起來是這樣的:
["AF_INET", 48942, "127.0.0.1", "127.0.0.1"]
您可以從它像這樣創建一個Addrinfo對象並獲取端口:
require 'socket'
server = TCPServer.new(3200)
client = server.accept()
addr = Addrinfo.new(client.peeraddr)
port = addr.ip_port