1- from socket import socket , create_connection , AF_INET , SOCK_DGRAM
2- from struct import unpack
31from time import time
2+ from struct import unpack
43from dataclasses import dataclass
4+ from socket import socket , create_connection , AF_INET , SOCK_DGRAM
55from typing import Tuple
66
7- # * Dataclass
87@dataclass
98class Status :
109 name : str
@@ -15,7 +14,6 @@ class Status:
1514 vertype : str
1615 ping : float
1716
18- # * Главный класс
1917class Server :
2018 def __init__ (
2119 self ,
@@ -27,20 +25,14 @@ def __init__(
2725 self .input_server : Tuple [str , int ] = (server_host , input_port )
2826
2927 def get_status (self , timeout : float = 10.0 ) -> Status :
30- # * Инициализация сервера
3128 s = socket (AF_INET , SOCK_DGRAM )
3229 s .connect (self .server )
3330 s .settimeout (timeout )
34-
35- # * Создание и так понятно чего для чего
3631 info = {}
37-
38- # * Получение данных и замер
3932 s_time = time ()
4033 s .send (b"\xfe \x01 " )
4134 data = s .recv (1024 )
4235 e_time = time ()
43-
4436 # * Парсинг
4537 info ["name" ] = data [1 :data [0 ]+ 1 ].decode ("utf-8" )
4638 data = data [data [0 ]+ 1 :]
@@ -54,28 +46,19 @@ def get_status(self, timeout: float=10.0) -> Status:
5446 data = data [4 :]
5547 info ["vertype" ] = data [1 :data [0 ]+ 1 ].decode ("utf-8" )
5648 info ["ping" ] = round ((e_time - s_time ) * 1000 )
57-
5849 return Status (** info )
5950
6051 def send_command (self , command : str ) -> None :
6152 s = create_connection (self .input_server )
62- s .sendall (
63- bytes (
64- command .encode (errors = "ignore" )
65- )
66- )
53+ s .sendall (command .encode (errors = "ignore" ))
6754 s .close ()
6855
6956 def ping (self , timeout : float = 10.0 ) -> int :
70- # * Инициализация сервера
7157 s = socket (AF_INET , SOCK_DGRAM )
7258 s .connect (self .server )
7359 s .settimeout (timeout )
74-
75- # * Получение данных и замер
7660 s_time = time ()
7761 s .send (b"\xfe \x01 " )
7862 s .recv (1024 )
7963 e_time = time ()
80-
8164 return round ((e_time - s_time ) * 1000 )
0 commit comments