这是一个简单的服务器。当您将浏览器类型打开到服务器的地址中时,它会响应状态码和请求的html的内容。但是当我添加这个句子“connectionSocket.send('HTTP/1.1 200 OK')”时,没有任何返回。当我删除它时,html返回。另一个问题是,当我通过Web浏览器发送请求时,有两个连接发送到服务器,一个显示它想要找到一个名为favicon.ico的文件,但当然这是一个IOError,因为没有这样的文件我的服务器的根目录。代码附后,并感谢您的帮助。有一个由python编写的简单服务器的问题
#import socket module from socket import * serverSocket = socket(AF_INET,SOCK_STREAM) #prepare a server socket serverSocket.bind(('192.168.0.101', 8765)) serverSocket.listen(1) while True: #Establish the connection print 'Ready to serve...' connectionSocket,addr = serverSocket.accept() print 'connected from',addr try: message = connectionSocket.recv(1024) filename = message.split()[1] print filename f = open(filename[1:]) outputdata = f.read() #Send one HTTP header line into socket #connectionSocket.send('HTTP/1.1 200 OK') #Send the content of the requested file to the client for i in range(0,len(outputdata)): connectionSocket.send(outputdata[i]) connectionSocket.close() except IOError: print 'IOError' #Send response message for file not found connectionSocket.send('file not found') #Close Client socket connectionSocket.close() serverSocket.close()
+1:就像好时光,当我们写我们从头开始所有的软件,而无需使用任何库。布拉沃。 -1:使用'socket'库是欺骗行为。您应该直接使用'/ dev/eth'驱动程序。 – 2010-10-01 14:59:18