在Ruby中進行TCP/IP通信時,可以使用以下方法進行調試:
socket庫進行基本的TCP通信:require 'socket'
server = TCPServer.new('localhost', 12345)
client = server.accept
begin
puts "連接已建立"
data = client.gets
puts "收到數據: #{data}"
ensure
client.close
server.close
end
net/http庫進行HTTP通信:require 'net/http'
require 'uri'
url = URI('http://example.com')
response = Net::HTTP.get(url)
puts "狀態碼: #{response.code}"
puts "響應內容: #{response.body}"
pry庫進行交互式調試:首先,安裝pry庫:
gem install pry
然后,在代碼中添加binding.pry,這樣在執行到這一點時,程序會暫停,允許你在控制臺中輸入命令來檢查變量和堆棧跟蹤。
require 'socket'
server = TCPServer.new('localhost', 12345)
client = server.accept
binding.pry # 添加斷點
begin
puts "連接已建立"
data = client.gets
puts "收到數據: #{data}"
ensure
client.close
server.close
end
byebug庫進行交互式調試:首先,安裝byebug庫:
gem install byebug
然后,在代碼中添加byebug,這樣在執行到這一點時,程序會暫停,允許你在控制臺中輸入命令來檢查變量和堆棧跟蹤。
require 'socket'
server = TCPServer.new('localhost', 12345)
client = server.accept
byebug # 添加斷點
begin
puts "連接已建立"
data = client.gets
puts "收到數據: #{data}"
ensure
client.close
server.close
end
在這些方法中,你可以使用puts、p等命令輸出變量值,使用step、next等命令控制代碼執行,以及使用backtrace命令查看堆棧跟蹤。