Python SocketServer works on localhost but not on server

python, sockets

Solution

error: (98, 'Address already in use')

You need this for that:

socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

but is unresponsive on public server.

Usually in case of shared hosting, you cant get through with creating a socket. In any case you could try the following, to see if it helps:

HOST, PORT = "", 9989 # or (public_IP,9989)

Problem

Included below is the code that I am currently using: ``` #! /usr/bin/python print 'Content-type: application' print '\n\n' import SocketServer import cgitb cgitb.enable() class MyTCPHandler(SocketServer.BaseRequestHandler): """ The RequestHandler class for our server. It is instantiated once per connection to the server, and must override the handle() method to implement communication to the client. """ def handle(self): # self.request is the TCP socket connected to the client self.data = self.request.recv(1024).strip() print "{} wrote:".format(self.client_address[0]) print self.data # just send back the same data, but upper-cased self.request.sendall(self.data.upper()) self.request.sendall('Data Received') if __name__ == "__main__": HOST, PORT = "localhost", 9989 # Create the server, binding to localhost on port 9989 server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler) # Activate the server; this will keep running until you # interrupt the program with Ctrl-C server.serve_forever() ``` The code works as expected on localhost, but is unresponsive on public server. In addition, executing the code twice results in the following error message: error: (98, 'Address already in use')

Original source