Skip to content

Instantly share code, notes, and snippets.

@zeroflag
Last active August 11, 2021 14:35
Show Gist options
  • Save zeroflag/4b30586a08c01a797db83a044e002c30 to your computer and use it in GitHub Desktop.
Save zeroflag/4b30586a08c01a797db83a044e002c30 to your computer and use it in GitHub Desktop.
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