| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env python3
- import socket
- import myutil
- from multiprocessing import Process
- def handle_data(data):
- print(data)
- if data == "SLEEP":
- # myutil.suspend()
- pass
- def listen_udp():
- sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- sock.bind(('', 9))
- while True:
- msg, _ = sock.recvfrom(1024)
- res = myutil.parse_magic_packet(msg)
- handle_data(res)
- def listen_tcp():
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- sock.bind(('0.0.0.0', 7777))
- sock.listen(1)
- while True:
- conn, _ = sock.accept()
- data = conn.recv(4096)
- if not data:
- continue
- data = data.decode("utf-8").split("\r\n")
- path = data[0].split(" ")[1].lstrip("/")
- conn.send(b"HTTP/1.1 200 OK\n\n\n")
- conn.close()
- handle_data(path)
- if __name__ == '__main__':
- p = Process(target=listen_udp)
- p.start()
- q = Process(target=listen_tcp)
- q.start()
- p.join()
- q.join()
|