#!/usr/bin/python3 import SocketServer #import socketserver import time class MyTCPHandler(SocketServer.BaseRequestHandler): #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. """ data = \ b""",1.7,-30.40,M,-13.9,M,,*7D\r $GPGGA,193221.00,2037.72792,N,08704.08478,W,1,04,1.7,-30.40,M,-13.9,M,,*7D\r $GPGSA,A,3,10,28,09,13,,,,,,,,,03.4,01.7,03.0*00\r $GPGSV,3,1,12,28,14,150,41,09,15,254,41,10,43,192,47,13,06,081,36*7A\r $GPGSV,3,2,12,02,56,323,,04,41,024,,12,31,317,,17,31,085,*72\r $GPGSV,3,3,12,05,15,318,,24,02,246,,33,08,096,,35,45,118,*7D\r $GPRMC,193221.00,A,2037.7279,N,08704.0848,W,00.1,201.8,231207,01,W,A*2D\r $GPZDA,193223.00,23,12,2007,00,00*69\r """ """ms betwen two sends.""" interval = 0.01 blocks = (35, 5, 5, 5, 10, ) def handle(self): # self.request is the TCP socket connected to the client #self.data = self.request.recv(1024).strip() # just send back the same data, but upper-cased _data = self.data for b in self.blocks: self.request.sendall(_data[:b]) print(repr(_data[:b])) _data = _data[b:] time.sleep(self.interval) self.request.sendall(_data) class MyTCPServer(SocketServer.TCPServer): #class MyTCPServer(socketserver.TCPServer): def __init__(self, *argv, **argc): self.allow_reuse_address = True SocketServer.TCPServer.__init__(self, *argv, **argc) # socketserver.TCPServer.__init__(self, *argv, **argc) if __name__ == "__main__": HOST, PORT = "localhost", 50100 server = MyTCPServer((HOST, PORT), MyTCPHandler) server.serve_forever()