Browse Source

add and test web servers

joschka_dev
Jianshun Gao 1 year ago
parent
commit
b24d642f74
  1. 9
      livingPlotPanel/Register.py
  2. 83
      livingPlotPanel/WebServer.py
  3. 12
      livingPlotPanel/testWebClient.py
  4. 9
      livingPlotPanel/testWebServer.py
  5. 49
      testMongoDB.ipynb

9
livingPlotPanel/Register.py

@ -0,0 +1,9 @@
class Register:
def __init__(self) -> None:
pass

83
livingPlotPanel/WebServer.py

@ -0,0 +1,83 @@
import socket
from PyQt5 import QtCore
def print_new_message(msg):
print(msg)
class webServer(QtCore.QObject):
newMessageSignal = QtCore.pyqtSignal(str)
def __init__(self, host='localhost', port=12321) -> None:
self.host = host
self.port = port
self.socket = None
self.server = None
self.serverAddr = None
QtCore.QObject.__init__(self)
self.newMessageSignal.connect(print_new_message)
def __enter__(self):
# create a socket connection
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# bind the socket with host and port
self.socket.bind((self.host, self.port))
# allow maximum 1 connection to the socket
self.socket.listen(1)
return self
def __exit__(self, *args):
self.socket.close()
def close(self):
self.socket.close()
def start_listening(self):
while True:
# wait till a client accept connection
self.server, self.serverAddr = self.socket.accept()
msg = self.server.recv(1024)
msg = msg.decode()
self.newMessageSignal.emit(msg)
class webClient(object):
def __init__(self, host='localhost', port=12321) -> None:
self.host = host
self.port = port
self.socket = None
self.client = None
def __enter__(self):
# create a socket connection
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# connect it to server and port number on local computer.
self.socket.connect((self.host, self.port))
self.client = self.socket
return self
def __exit__(self, *args):
self.socket.close()
def close(self):
self.socket.close()
def connect(self):
self.socket.connect((self.host, self.port))
def send(self, msg):
self.client.send(msg.encode())

12
livingPlotPanel/testWebClient.py

@ -0,0 +1,12 @@
from WebServer import webServer, webClient
if __name__ == '__main__':
host = 'localhost'
port = 12321
with webClient(host, port) as client:
client.send('hello')
client.send('hello')
client.send('hello')
client.send('hello')

9
livingPlotPanel/testWebServer.py

@ -0,0 +1,9 @@
from WebServer import webServer, webClient
if __name__ == '__main__':
host = 'localhost'
port = 12321
with webServer(host, port) as server:
server.start_listening()

49
testMongoDB.ipynb

@ -1,5 +1,14 @@
{ {
"cells": [ "cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from PyQt5.QtCore import (Qt, pyqtSignal)"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 1, "execution_count": 1,
@ -1631,46 +1640,6 @@
"dataSet" "dataSet"
] ]
}, },
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(11, 3)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataSet.shotNum.shape"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['atoms', 'background', 'dark', 'shotNum', 'OD']"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(dataSet.data_vars)"
]
},
{ {
"attachments": {}, "attachments": {},
"cell_type": "markdown", "cell_type": "markdown",

Loading…
Cancel
Save