On Mar 14, 1:33 pm, MRAB <pyt...@mrabarnett.plus.com> wrote: > On 14/03/2011 19:47, Hans wrote: > > > > > On Mar 12, 10:13 pm, Tim Roberts<t...@probo.com> wrote: > >> Hans<hans...@gmail.com> wrote: > > >>> I'm thinking to write a code which to: > >>> 1. establish tons of udp/tcp connections to a server > > >> What does "tons" mean? Tens? Hundreds? > > >>> my question is how should I handle receiving traffic from each > >>> connection respectively? > > >> You're really going to want to use "select". You can store the objects in > >> a dictionary where the key is the socket number. That way, you can use the > >> result of the select and get your network object directly. > >> -- > >> Tim Roberts, t...@probo.com > >> Providenza& Boekelheide, Inc. > > > I wrote code like this: > > main proc: > > import socket_thread > > #start 1000 connection > > while i<1000: > > my_socket=socket_thread.socket_thread(i,host,port) > > my_socket.send(some_data) > > my_socket.recv() > > This won't run as-is because you never assign to "i". > > > > > > > socket_thread.py > > class socket_thread: > > def __init__: > > self.soc_handle=socket.socket(socket.IF_INET,socket.DGRAM) > > def send(data): > > self.soc_handle.send(data) > > def recv(): > > while 1: > > > input_list,output_list,exec_list=select.select([self.soc_handle],[],[], > > 2) > > data=input_list[0].recv(2048) > > print data > > > But it does not work as I hope. main proc can only initiate one thread > > and then trapped by it, cannot get out. > > I'm sure I missed something but I don't know. Thanks for any help. > > Your "socket_thread" class is just a normal class. You create an > instance, use it to send data, and then call its "recv" method, which > loops forever.- Hide quoted text - > > - Show quoted text -- Hide quoted text - > > - Show quoted text -
Thanks. "i" problem is OK, I can find and fix it easily. I also understand the second problem, but I don't know how to fix it. What's your meaning of "normal class"? Can I specify it as some special class and then it can work as I hope? thanks again. -- http://mail.python.org/mailman/listinfo/python-list