def initialize(id)
@id = id
@debug = false
@handler_table = Hash.new
@handler_lock = Monitor.new
@salt = rand(1000000000).to_s
@sid_counter = 0
@sid_lock = Monitor.new
@sending_lock = Monitor.new
@sending_waiter = @sending_lock.new_cond
@sending_queue = []
@waiting_list = []
@receiving_lock = Monitor.new
@receiving_waiter = @receiving_lock.new_cond
@receiving_table = Hash.new
@socket_lock = Monitor.new
@socket_waiter = @socket_lock.new_cond
@socket_state = :socket_not_connected
@socket = nil
@receiving_thread = nil
@sending_thread = nil
end