Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- require 'gserver'
- require 'socket'
- class ProxyServer < GServer
- def initialize(port, remote_port, remote_host)
- @remote_port = remote_port
- @remote_host = remote_host
- super(port, GServer::DEFAULT_HOST, Float::MAX, $stderr, true)
- end
- def starting
- log("Proxy server starting on #{@host} (#{@port}).")
- end
- def stopping
- log("Proxy server shutting down.")
- end
- def connecting(client)
- client_hostname = client.peeraddr[2] || client.peeraddr[3]
- log("Client connected (#{client_hostname}).")
- end
- def disconnecting(client_port)
- log("Client disconnected (#{client_port}).")
- @remote_socket.close
- end
- def serve(socket)
- until socket.eof? do
- message = socket.gets
- puts "[Client] #{message}"
- @remote_socket = TCPSocket.new(@remote_host, @remote_port)
- @remote_socket.puts message
- response = @remote_socket.gets
- puts "[Server] #{response}"
- socket.puts response
- end
- end
- end
- server = ProxyServer.new(2097, 8080, 'localhost')
- server.start(-1)
- server.join
Add Comment
Please, Sign In to add comment