2012-03-04 7 views
0
from BaseHTTPServer import HTTPServer 
from CGIHTTPServer import CGIHTTPRequestHandler 
import socket,ssl 
import time 
import Config 

class StartHTTPServer: 
    '''Web server to serve out map image and provide cgi''' 


    def __init__(self): 
     # Start HTTP Server. Port and address defined in Config.py 
     srvraddr = ("", Config.HTTP_PORT)      # my hostname, portnumber 
     srvrobj = HTTPServer(srvraddr, CGIHTTPRequestHandler) 

     srvrobj.socket = ssl.wrap_socket(srvrobj.socket,server_side=True, 
            certfile="c:\users\shuen\desktop\servertryout 23022012\serverCert.crt", 
            keyfile="c:\users\shuen\desktop\servertryout 23022012\privateKey.key", 
            ssl_version=ssl.PROTOCOL_TLSv1, 
            do_handshake_on_connect=True) 

     print srvrobj.socket.cipher() 
     print srvrobj.socket.getsockname() 
     print "HTTP server running at IP Address %s port %s." % (Config.HTTP_ADDRESS, Config.HTTP_PORT) 
     srvrobj.serve_forever()        # run as perpetual demon 

     srvrobj.socket.accept() 
     message='hello from server.<EOF>' 
     srvrobj.socket.send(message) 

정상적인 소켓으로 데이터를 보내려고했습니다. 그러나, 내가 노력하고 코드는 socketServer를 사용하고 있으며 변경할 수 없습니다. 나는 서버에 데이터를 보낼 예제를 찾을 수 없습니다. 어떻게해야합니까?클라이언트에 데이터를 보내는 방법은 무엇입니까?

답변

0

정말로 서버 소프트웨어를 변경할 수없는 경우 래퍼 (예 : 지. openssl s_server.

+0

나는 serve_forever 명령 후에 SocketServer가 소켓에 메시지를 보낼 수 있는지 궁금합니다. 래퍼가 필요한지 확실하지 않습니다. – Shuen

관련 문제