ref http://itszero-blog.tumblr.com/post/947845820/port-forwarding-in-ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| #!/usr/bin/env ruby
# encoding: utf-8
require 'socket'
listen_port=80
forward_host="127.0.0.1"
forward_port=4000
server = TCPServer.open(listen_port)
loop do
Thread.start(server.accept) do |client|
remote = TCPSocket.open(forward_host, forward_port )
loop do
r, w, e = IO.select([client, remote], nil, nil, 0)
(r || []).each do |f|
if f == remote
client.write remote.getc.chr
else
remote.write client.getc.chr
end
end
end
end
end
|