def __init__(self, eth, mac_address, timeout=1, timeout_response=1, debug=False): self._debug = debug self._timeout = timeout self._response_timeout = timeout_response self._mac_address = mac_address # Initalize a new UDP socket for DHCP socket.set_interface(eth) self._sock = socket.socket(type=socket.SOCK_DGRAM) self._sock.settimeout(timeout) # DHCP state machine self._dhcp_state = STATE_DHCP_START self._initial_xid = 0 self._transaction_id = 0 # DHCP server configuration self.dhcp_server_ip = 0 self.local_ip = 0 self.gateway_ip = 0 self.subnet_mask = 0 self.dns_server_ip = 0 # Lease configuration self._lease_time = 0 self._last_check_lease_ms = 0 self._renew_in_sec = 0 self._rebind_in_sec = 0 self._t1 = 0 self._t2 = 0
def __init__(self, iface, dns_address, debug=False): self._debug = debug self._iface = iface socket.set_interface(iface) self._sock = socket.socket(type=socket.SOCK_DGRAM) self._sock.settimeout(1) self._dns_server = dns_address self._host = 0 self._request_id = 0 # request identifier self._pkt_buf = bytearray()
def __init__(self, iface, ntp_address, utc, debug=False): self._debug = debug self._iface = iface socket.set_interface(self._iface) self._sock = socket.socket(type=socket.SOCK_DGRAM) self._sock.settimeout(1) self._utc = utc self._ntp_server = ntp_address self._host = 0 self._request_id = 0 # request identifier self._pkt_buf_ = bytearray([0x23] + [0x00] * 55)
def __init__(self, eth, mac_address, hostname=None, response_timeout=30, debug=False): self._debug = debug self._response_timeout = response_timeout self._mac_address = mac_address # Set socket interface socket.set_interface(eth) self._eth = eth self._sock = None # DHCP state machine self._dhcp_state = STATE_DHCP_START self._initial_xid = 0 self._transaction_id = 0 self._start_time = 0 # DHCP server configuration self.dhcp_server_ip = BROADCAST_SERVER_ADDR self.local_ip = 0 self.gateway_ip = 0 self.subnet_mask = 0 self.dns_server_ip = 0 # Lease configuration self._lease_time = 0 self._last_lease_time = 0 self._renew_in_sec = 0 self._rebind_in_sec = 0 self._t1 = 0 self._t2 = 0 # Select an initial transaction id self._transaction_id = randint(1, 0x7FFFFFFF) # Host name mac_string = "".join("{:02X}".format(o) for o in mac_address) self._hostname = bytes( (hostname or "WIZnet{}").split(".")[0].format(mac_string)[:42], "utf-8")
def __init__(self, eth, mac_address, hostname=None, response_timeout=3, debug=False): self._debug = debug self._response_timeout = response_timeout self._mac_address = mac_address # Initalize a new UDP socket for DHCP socket.set_interface(eth) self._sock = socket.socket(type=socket.SOCK_DGRAM) self._sock.settimeout(response_timeout) # DHCP state machine self._dhcp_state = STATE_DHCP_START self._initial_xid = 0 self._transaction_id = 0 # DHCP server configuration self.dhcp_server_ip = 0 self.local_ip = 0 self.gateway_ip = 0 self.subnet_mask = 0 self.dns_server_ip = 0 # Lease configuration self._lease_time = 0 self._last_check_lease_ms = 0 self._renew_in_sec = 0 self._rebind_in_sec = 0 self._t1 = 0 self._t2 = 0 # Host name mac_string = "".join("{:02X}".format(o) for o in mac_address) self._hostname = bytes( (hostname or "WIZnet{}").split(".")[0].format(mac_string)[:42], "utf-8")
def set_interface(iface): """Helper to set the global internet interface""" global _the_interface # pylint: disable=global-statement, invalid-name _the_interface = iface socket.set_interface(iface)
import digitalio from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K import adafruit_wiznet5k.adafruit_wiznet5k_socket as socket print("Wiznet5k SimpleServer Test") # For Adafruit Ethernet FeatherWing cs = digitalio.DigitalInOut(board.D10) # For Particle Ethernet FeatherWing # cs = digitalio.DigitalInOut(board.D5) spi_bus = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO) # Initialize ethernet interface eth = WIZNET5K(spi_bus, cs, is_dhcp=False) # Initialize a socket for our server socket.set_interface(eth) server = socket.socket() # Allocate socket for the server server_ip = "192.168.10.1" # IP address of server server_port = 50007 # Port to listen on server.bind((server_ip, server_port)) # Bind to IP and Port server.listen() # Begin listening for incoming clients conn, addr = server.accept() # Wait for a connection from a client. while True: with conn: data = conn.recv(1024) if data: # Wait for receiving data print(data) conn.send(data) # Echo message back to client