Last active
August 11, 2021 14:35
-
-
Save zeroflag/4b30586a08c01a797db83a044e002c30 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import socket, threading, sys | |
class DhtServer(threading.Thread): | |
def __init__(self, port): | |
threading.Thread.__init__(self) | |
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
self.socket.bind(('0.0.0.0', port)) | |
self.socket.listen(1) | |
def run(self): | |
while True: | |
try: | |
client, addr = self.socket.accept() | |
temperature, humidity = self.recv_data(client) | |
print 'TEM:', temperature | |
print 'HUM:', humidity | |
except: | |
print "Unexpected error:", sys.exc_info()[0] | |
def recv_data(self, client): | |
buffer = bytearray([0,0,0,0]) | |
try: | |
client.recv_into(buffer, 4) | |
return self.parse_temperature(buffer), self.parse_humidity(buffer) | |
finally: | |
client.close() | |
def parse_temperature(self, buffer): | |
return (buffer[1] << 8 | buffer[0]) / 10.0 | |
def parse_humidity(self, buffer): | |
return (buffer[3] << 8 | buffer[2]) / 10.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment