icps

notes

Portforward

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