PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit threading / TCP-sockets



d@tenmaulwurf
10-04-2007, 02:01
Hallo!

Ich möchte mir einen kleinen Proxy bauen und möchte nun, dass pro Array-Element (redirevts) auf einem bestimmten Port gelauscht wird.
Letzendlich soll der Codeblock nur auf den Ports '44391' und '99391' lauschen.

Das Problem hierbei ist, dass das threading nicht so funktioniert wie ich mir das vorstelle.
Er kommt - auch ohne den 'thread.start_new_thread'-Teil - nicht in den 2. Durchgang der Schleife.

Er lauscht - scheinbar nicht in einem Thread - auf Port 44391 und kommt nicht weiter.



$ python test.py
host1, 44391


Habe ich das mit dem Threading falsch verstanden und zu sowas kann man es nicht nutzen?

Wenn doch - wie?

Vielen Dank schonmal im voraus,

hoffe ihr hattet frohe Ostern :)

d@tenmaulwurf





import socket
import thread

redirects = [(44391,'host1',443), (99391,'host2',993)];
server = [];

def listener (redirect):
server.append (socket.socket ( socket.AF_INET, socket.SOCK_STREAM ));
server[i].bind ( ( '127.0.0.1', redirect[0] ) );
server[i].listen ( 1 );
server[i].accept ();

i = 0;
for redirect in redirects:
print redirects[i][1] + ', ' + str (redirects[i][0]);
thread.start_new_thread (listener (redirects[i]))
i = i+1;

d@tenmaulwurf
10-04-2007, 23:11
Hat sich soweit erledigt - wie's richtig ist kommt nacher.