Skip to content

Instantly share code, notes, and snippets.

@ledsun
Created January 2, 2025 21:59
Show Gist options
  • Save ledsun/1023eee50fdcfa7202c8c065e4b57644 to your computer and use it in GitHub Desktop.
Save ledsun/1023eee50fdcfa7202c8c065e4b57644 to your computer and use it in GitHub Desktop.
WEBrick error handling example
# frozen_string_literal: true
require "socket"
require "webrick"
server = WEBrick::HTTPServer.new Host: "localhost", Port: 22_222
Thread.start { server.start }
sleep 0.5
p "server started"
request = <<~REQUEST
GET / HTTP/1.0
REQUEST
socket = TCPSocket.new "127.0.0.1", 22_222
socket.write(request.gsub("\n", "\r\n"))
p "request sent form #{socket.local_address.ip_address}:#{socket.local_address.ip_port}"
sleep 0.5
socket = TCPSocket.new "::1", 22_222
socket.write(request.gsub("\n", "\r\n"))
p "request sent form #{socket.local_address.ip_address}:#{socket.local_address.ip_port}"
sleep 0.5
server.stop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment