コード例 #1
0
ファイル: ergserver.py プロジェクト: andyp123/ergamigo
def main():
    # handle command line options
    parser = OptionParser(usage="usage: %prog [options]", version="%prog 1.0")
    parser.add_option("--host", default='', type='string', action="store", dest="host", help="hostname (localhost)")
    parser.add_option("--port", default=8000, type='int', action="store", dest="port", help="port (8000)")
    (options, args) = parser.parse_args()
    
    print("Welcome to ErgServer!")

    # initialize connection to erg
    connected_ergs = pyrow.find()
    if len(connected_ergs) == 0:
        print("No ergs found.")
    else:
        print("{} erg(s) found. Starting ErgServer.".format(len(connected_ergs)))
        print("(NOTE: This will run forever. Press ctrl+c to quit)")

        try:
            message_queue = Queue(20)

            # connect to erg and monitor it using a new process
            erg = pyrow.pyrow(connected_ergs[0])
            prc_monitor = Process(target=monitor_erg, args=(message_queue, erg))
            prc_monitor.start()

            # start the websocket server to accept client connections
            erg_server = SimpleWebSocketServer(options.host, options.port, ErgSocket, message_queue)

            def close_sig_handler(signal, frame):
                erg_server.close()
                sys.exit(0)

            signal.signal(signal.SIGINT, close_sig_handler)
            erg_server.serveforever()

        except:
            pass

    print("Closing ErgServer. See you next time!")
    try:
        prc_monitor.terminate()
    except:
        pass
    sys.exit(0)
コード例 #2
0
ファイル: server.py プロジェクト: yxsyxs/YoC-open
    def handleMessage(self):
        # print("--->")
        for client in clients:
            if (client == self.address):
                # print(self.data)
                if (self.opcode == 0):
                    self.saveFile(self.data)

    def handleConnected(self):
        print(self.address, 'connected')
        # for client in clients:
        #     client.sendMessage(self.address[0] + u' - connected')
        #self.fileName = 'voice_factory_test.pcm'
        
        self.fileCreate = False
        clients.append(self.address)
        print("append ok")

    def handleClose(self):
        clients.remove(self.address)
        print(self.address, 'closed')
        # for client in clients:
        #     client.sendMessage(self.address[0] + u' - disconnected')

try:
    server = SimpleWebSocketServer(interface, port, WsRec)
    server.serveforever()

except KeyboardInterrupt:
    print('^C received, shutting down the web server')
    server.close()
コード例 #3
0
ファイル: server.py プロジェクト: mumme74/Picaxe
    for port, desc, hwid in iterator:
      #print("%-20s" % (port,))
      #print("    desc: %s" % (desc,))
      #print("    hwid: %s" % (hwid.upper(),))
      #print(hwid[-9:])
      available.append((port, port))
      if (('USB VID:PID=0403:BD90' in hwid.upper()) or 
          ('USB VID:PID=403:BD90' in hwid.upper())):
        default = len(available) - 1
    return {'ports': available, 'default': default }

def printTrace():
  import traceback, os
  exc_type, exc_obj, exc_tb = sys.exc_info()
  fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
  print(exc_type,sys.exc_info()[1],fname, exc_tb.tb_lineno)
  print(traceback.format_exc())



if __name__ == "__main__":
  #start http server as a subprocess
  if sys.version_info[0] >= 3:
    subprocess.Popen("cd gui && python -m http.server " + str(HTTP_PORT), shell=True)
  else:
    subprocess.Popen("cd gui && python -m SimpleHTTPServer " + str(HTTP_PORT), shell=True)
  
  # websocket server
  server = SimpleWebSocketServer('', WS_PORT, PicaxeInterface)
  server.serve()
コード例 #4
0
ファイル: server.py プロジェクト: mumme74/Picaxe
      # handle websocket requests here
      self.websockserver.serve(continous=False) # timeouts immediatly


  def write(self, string):
    if self.port and self.port.writable():
      self.sendData.append(to_bytes(string.encode('iso-8859-1')))
      #return self.port.write(string.encode('iso-8859-1'))


def printTrace():
  import traceback, os
  exc_type, exc_obj, exc_tb = sys.exc_info()
  fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
  print(exc_type,sys.exc_info()[1],fname, exc_tb.tb_lineno)
  print(traceback.format_exc())



if __name__ == "__main__":
  #start http server as a subprocess
  if sys.version_info[0] >= 3:
    subprocess.Popen("cd gui && python -m http.server " + str(HTTP_PORT), shell=True)
  else:
    subprocess.Popen("cd gui && python -m SimpleHTTPServer " + str(HTTP_PORT), shell=True)
  
  # websocket server
  websockserver = SimpleWebSocketServer('', WS_PORT, PicaxeInterface, 0.01)
  websockserver.serialIface = SerialInterface(websockserver)
  websockserver.serialIface.serveforever()
コード例 #5
0
      clients.append(self)
      print (self.address, 'connected')

      # REST APIs to Agent Client
      for api in agent_apis:
          self.sendMessage(json.dumps(api, ensure_ascii=False))

   def handleClose(self):
      clients.remove(self)
      print (self.address, 'closed')


if __name__ == "__main__":

   parser = OptionParser(usage="usage: %prog [options]", version="%prog 1.0")
   parser.add_option("--host", default='', type='string', action="store", dest="host", help="hostname (localhost)")
   parser.add_option("--port", default=8000, type='int', action="store", dest="port", help="port (8000)")
   parser.add_option("--ssl", default=1, type='int', action="store", dest="ssl", help="ssl (1: on, 0: off (default))")
   parser.add_option("--certfile", default='./server.crt', type='string', action="store", dest="cert", help="Server Cert self-signed or CA-signed (./server.crt)")
   parser.add_option("--keyfile", default='./server.key', type='string', action="store", dest="key", help="Server Private key file (./server.key)")
   parser.add_option("--ver", default=ssl.PROTOCOL_TLSv1, type=int, action="store", dest="ver", help="ssl version")

   (options, args) = parser.parse_args()

   if options.ssl:
      server = SimpleSSLWebSocketServer(options.host, options.port, SimpleWebSocket, options.cert, options.key, version=options.ver)
   else:
      server = SimpleWebSocketServer(options.host, options.port, cls)

   server.serveforever()