Lukas Nemec wrote: > Hi, > > fist - are you really triyng to have open 64 000 ports? ok, i suppose > you have your reasons, but this is not a good idea - you'll block most > applications that use these ports .. > > The problem is with your main function - > you have PORT defined, but it is not global, it is only local, and when > you add +1 to it, next spawned process will have PORT with previous value. > > either use global PORT, or have it as a parameter for the function: > > main(port): > ...... > PORT = port > > while startingPort<65535: > thread.start_new_thread(setup(startingPort)) > startingPort=startingPort+1
setup() is still called in the main thread, likely listens forever which is why thread.start_new_thread() is never called and therefore doesn't complain about the missing argument... Try def setup(PORT): ... # don't reassign port inside the function for port in range(startingPort, 65535): thread.start_new_thread(setup, (port,)) Note that some_func(setup(port)) passes the result of the setup() call to some_func while some_func(setup, (port,)) passes the setup function and a 1-tuple with the port as its only item. The comma is necessary to create a tuple, parentheses alone have no effect: >>> (1) 1 >>> (1,) (1,) PS: You should also consider using the (higlevel) threading module instead of the thread module. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor