def main(): host_address = ("127.0.0.1", 5684) ip = '127.0.0.1' port = 5684 current_mid = random.randint(1, 1000) server_mid = random.randint(1000, 2000) server_read_timeout = 0.1 pem = setUpPems() ''' Set up 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=pem['SERVER_KEY'], certfile=pem['SERVER_KEY'], ca_certs=pem['CA_CERT']) sock.bind(host_address) try: sock.listen(0) except KeyboardInterrupt: print("Server shutting down...") sock.close() ''' Connect CoAP server to the newly created socket ''' server = CoAPServer(ip, port, starting_mid=server_mid, sock=sock, cb_ignore_listen_exception=cb_ignore_listen_exception) ''' Start the server listen routine ''' server_thread = threading.Thread(target=server.listen, name='ServerThread', args=(server_read_timeout, )) server_thread.start()
def main(): serversocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) serversocket.settimeout(300) cert_path = path.join(path.abspath(path.dirname(__file__)), "certs") host_address = ("212.201.8.88", 6657) # Create a server side DTLS socket dtls_sock = wrap_server(serversocket, keyfile=path.join(cert_path, "keycert.pem"), certfile=path.join(cert_path, "keycert.pem"), ca_certs=path.join(cert_path, "ca-cert.pem"), do_handshake_on_connect=True) dtls_sock.bind(host_address) dtls_sock.listen(1) print ("Waiting for CoAP Client to Connect ..") # Connect the Listening DTLS socket to CoAP server = CoAPServer(host_address, sock=dtls_sock) server.add_resource('temperature/', Temperature()) server.add_resource('humidity/', Humidity()) server.add_resource('pressure/', Pressure()) print("CoAP Server start on " + host_address[0] + ":" + str(host_address[1])) while True: time.sleep(0.5) try: server.listen(1) except KeyboardInterrupt: print "Server Shutdown" server.close() print "Exiting..."
def __init__(self, host, port): #print("server_key:"+pem_server_key) #print("ca_cert :"+pem_server_key) #logger.debug("cert_chain :"+cert_chain) #inicializacao do DTLS self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # do_patch() self.sock = wrap_server( sock=self.sock, keyfile=caminho_serv_key, #pem_server_key, certfile=caminho_server_cert, #pem_server_key)#, ca_certs=caminho_ca_cert, #, ciphers="ECDHE+AESGCM") #pem_server_key) #cert_reqs, #ssl_version, #, #do_handshake_on_connect, #suppress_ragged_eofs, #ciphers, #curves, #sigalgs, #user_mtu, #server_key_exchange_curve, #server_cert_options logger.debug("inicializou socket ssl") #self.sock.bind((host,port)) self.sock.bind(host_address) self.sock.listen(0) logger.debug("fez o bind") self.server = CoAP((host, port), starting_mid=None, sock=self.sock) logger.debug("instanciou servidor") #CoAP.__init__(self, (host, port)) self.server.add_resource('basic/', BasicResource()) self.server.add_resource('teste', TesteResource()) self.server.add_resource('sala/teste', TesteResource()) self.server.add_resource('jardim/teste', TesteResource()) logger.debug("adicionou recursos")
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()
def __init__(self, host, port, pemCertAndServerKeyFileName, pemCAFileName): self.host_address = (host, port) # 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) #expecting Cert and Private key merged in one file _sock = wrap_server(_sock, keyfile=pemCertAndServerKeyFileName, certfile=pemCertAndServerKeyFileName, ca_certs=pemCAFileName) _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=None, sock=_sock, cb_ignore_listen_exception = self._cb_ignore_listen_exception) # Add resource by passing the URI and the Instance of the Resource self.server.add_resource('gpsflowtemp/', GpsFlowTempResource())
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()