包括下面是我目前使用的代碼:Python的SocketServer的工作在本地主機,但不能在服務器
#! /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()
代碼工作在本地主機上如預期,但公共服務器上反應遲鈍。
此外,執行了兩次代碼將導致以下錯誤信息:
error: (98, 'Address already in use')
他在第一次死亡後第二次運行**。 – SuperSaiyan