On 10/06/14 00:33, Jon Engle wrote:
I am trying to open ports 1025-65535 with the following code

Why would you want to do that?
It sounds like a great way to cripple your PC as it runs 64000 threads monitoring each of those ports. And it assumes that nothing else is using those ports already... And if you did find something trying to connect, what port is the server going to allocate? You've already grabbed them all?

Can you explain your rationale for trying to do this? Unless you are trying a brute force technique to prevent anything from connecting to your computer?

found online with small modifications). I am unable to "bind" anything
other than the one port which is selected as input. What am I missing
and how do I bind all the ports simultaneously?

I think you are missing the basic concepts of server computing. You should never need to bind all the ports at once.

However as to your code... its hard to critique because you lost the indentation - presumably through posting in HTML? Try using plain text for posting code.

#!/usr/bin/python           # This is server.py file
from socket import *      #import the socket library
import thread #import the thread library

startingPort=input("\nPlease enter starting port: ")
startingPort=int(startingPort)

def setup():
...
## now we create a new socket object (serv)
## see the python docs for more information on the socket types/flags
serv = socket( AF_INET,SOCK_STREAM)
serv.bind((ADDR))
serv.listen(5)    #5 is the maximum number of queued connections we'll allow

serv = socket( AF_INET,SOCK_STREAM)
serv.bind((ADDR))
serv.listen(5)    #5 is the maximum number of queued connections we'll allow


Why do you do it twice?

print 'listening...'

Is this Python 2 or 3? Your input lines above suggest its Python 3 but this print line suggests its Python 2. Which are you using?

PORT=PORT+1
conn,addr = serv.accept() #accept the connection
print '...connected!'
conn.send('TEST')
conn.close()

You normally put the listening code inside a loop, waiting for a connection, processing it and then going back to listen some more....

while startingPort<65535:
thread.start_new_thread(setup())
startingPort=startingPort+1

Minor niggle, if you must do this use a for loop. Its tidier.
As a minimum you need some error handling to deal with
unsuccessful attempts to bind. And you need a better way
of processing connections.

But fundamentally, I suspect that whatever you are trying to
do there is a better approach!

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to