def start(): # start refresh thread refresh_interval = int(config.get("refresh_interval")) refresh = threading.Thread(target=refreshDB, args=(refresh_interval,)) refresh.start() # start the server host = config.get("queryserver_host") port = int(config.get("queryserver_port")) poolSize = int(config.get("queryserver_pool")) p = pool.Pool(poolSize) slog.info("Start query server on %s:%s with pool size %s" % (host, port, poolSize)) wsgi.WSGIServer((host,port), queryapp, spawn=p).serve_forever()
#author: TroyCheng #email: [email protected] import socket import threading import SocketServer import sys import struct import time from globaldef import MSG_QUEUE, plog, config # used for parsing request INT_SIZE = struct.calcsize("i") # Attributes for TCP server HOST = config.get("pushserver_host") PORT = int(config.get("pushserver_port")) REQUEST_QUEUESIZE = config.get("pushserver_queue") # define the response message RESPONSE_OK = "ok" RESPONSE_ERR = "error" # define the request handler class RequestHandler(SocketServer.BaseRequestHandler): def handle(self): # get the message length and then get the message try: msg_len, = struct.unpack("i", self.request.recv(INT_SIZE)) msg_body, = struct.unpack("%ds" % msg_len, self.request.recv(msg_len))
#encoding:utf-8 #author: troycheng #email: [email protected] import struct import socket import sys import json from globaldef import config HOST = config.get("pushserver_host") PORT = int(config.get("pushserver_port")) # The function used for client def packMsg(message): msg_len = len(message) msg_fmt = "i%ds" % msg_len msg = struct.pack(msg_fmt, msg_len, message) return msg def send(message): msg = packMsg(message) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((HOST, PORT)) sock.send(msg) response = sock.recv(1024) print "response: %s" %response sock.close() if __name__ == "__main__": if 2 == len(sys.argv):