def __init__(self, host, port, multicast=False): CoAP.__init__(self, (host, port), multicast) self.add_resource('basic/', BasicResource()) self.add_resource('storage/', Storage()) self.add_resource('separate/', Separate()) self.add_resource('long/', Long()) self.add_resource('big/', Big()) self.add_resource('void/', voidResource()) self.add_resource('xml/', XMLResource()) self.add_resource('encoding/', MultipleEncodingResource()) self.add_resource('etag/', ETAGResource()) self.add_resource('child/', Child()) print "CoAP Server start on " + host + ":" + str(port) print self.root.dump()
def setUp(self): self.host_address = ("127.0.0.1", 5684) self.current_mid = random.randint(1, 1000) self.server_mid = random.randint(1000, 2000) self.server_read_timeout = 0.1 self.pem = self._setUpPems() # Set up a server side DTLS socket _sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) _sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) _sock = wrap_server(_sock, keyfile=self.pem['SERVER_KEY'], certfile=self.pem['SERVER_KEY'], ca_certs=self.pem['CA_CERT']) _sock.bind(self.host_address) _sock.listen(0) # Connect the CoAP server to the newly created socket self.server = CoAPServer( self.host_address, starting_mid=self.server_mid, sock=_sock, cb_ignore_listen_exception=self._cb_ignore_listen_exception) self.server.add_resource('storage/', Storage()) # Test code to "pseudo" capture the udp communication between server and client on the loopback device try: from proxy import proxy_thread self.server_address, self.runFlag = proxy_thread( 0, self.host_address[0], self.host_address[1]) except ImportError: self.server_address = self.host_address self.runFlag = None # Start the server listen routine self.server_thread = threading.Thread( target=self.server.listen, name='ServerThread', args=(self.server_read_timeout, )) self.server_thread.start()