working examples
This commit is contained in:
58
check_connection.py
Normal file
58
check_connection.py
Normal file
@@ -0,0 +1,58 @@
|
||||
import socket
|
||||
import threading
|
||||
|
||||
PORT = 54000
|
||||
BROADCAST = "255.255.255.255"
|
||||
|
||||
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
|
||||
udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
||||
|
||||
interfaces = socket.getaddrinfo(host=socket.gethostname(), port=None, family=socket.AF_INET)
|
||||
for idx, ip in enumerate(interfaces):
|
||||
print(f"{idx}: {ip[-1][0]}")
|
||||
|
||||
interface = input("Który interfejs: ")
|
||||
ip_addr = interface[int(interface)][-1][0]
|
||||
udp_socket.bind((ip_addr, PORT))
|
||||
|
||||
def recive_bradcast():
|
||||
print("Nasluchuje....")
|
||||
t = threading.currentThread()
|
||||
while getattr(t, "do_run", True):
|
||||
data, addr = udp_socket.recvfrom(1024)
|
||||
print(f"from: {addr}, recive: {data}")
|
||||
|
||||
print("Przestalem nasluchiwac!")
|
||||
|
||||
recv_thread = threading.Thread(target=recive_bradcast)
|
||||
recv_thread.start()
|
||||
|
||||
|
||||
counter = 0
|
||||
while True:
|
||||
choice = input("Wyslac dane?[t/n] ")
|
||||
if choice.lower() == "n":
|
||||
run = False
|
||||
break
|
||||
elif choice.lower() != "t":
|
||||
continue
|
||||
|
||||
counter = counter + 1
|
||||
udp_socket.sendto(f"test connection, counter: {counter}".encode("utf8"), (BROADCAST, PORT))
|
||||
|
||||
recv_thread.do_run = False
|
||||
udp_socket.close()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# print(interfaces[int(interface)][-1][0])
|
||||
# allips = [ip[-1][0] for ip in interfaces]
|
||||
# print(allips)
|
||||
|
||||
# print(socket.gethostbyname(socket.gethostname()))
|
||||
# print(socket.if_nameindex())
|
||||
# print(socket.if_nametoindex(socket.gethostname()))
|
||||
# print(interfaces)
|
||||
Reference in New Issue
Block a user