сокет python зависает при подключении

Я пытаюсь сделать прозрачный прокси на Python, используя модуль сокета. но по какой-то причине он зависает при подключении () сокета. вот код, который я использую:

from __future__ import division
import socket
import struct
#import mcpackets
import sys
import time
#CUSTOM SETTINGS
HOST="192.168.178.28"
PORT=25565
#END CUSTOM SETTINGS

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('',25565))
serversocket.listen(1)
print "waiting for client, press multiplayer and use 'localhost' as server"
clientsocket,address=serversocket.accept()
print "client connected from %s:%d"%address
serversocket.close()
print "connecting to '%s:%d'"%(HOST,PORT)
serversocket=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "socket created."
serversocket.connect((HOST,PORT))#------------------------------ freezes here
print "socket connected."
serversocket.settimeout(0)
clientsocket.settimeout(0)
print "timeouts set."
print "now proxying."
#tdata=[]
try:
    while(True):
        dat=None
        try:
            dat=clientsocket.recv(4096)
        except socket.timeout:
            pass

        if(dat!=None):
            try:
                serversocket.send(dat)
            except socket.timeout:
                pass
        #vice versa
        dat=None
        try:
            dat=serversocket.recv(4096)
        except socket.timeout:
            pass
        if(dat!=None):

            try:
                clientsocket.send(dat)
            except socket.timeout:
                pass
except:
    clientsocket.close()
    #with open("data.log","w") as fid:
    #    fid.write(''.join(tdata))
    raise

проблема не в сети, поскольку подключение к серверу напрямую работает нормально. есть идеи, что не так?

5
задан doxin 27 August 2011 в 12:29
поделиться