def main_loop(self): exit_app = False srv = Server() while not exit_app: self.lego = None srv.accept() while True: data = srv.recv() logging.info(data) if not data: del self.lego break elif data == 'start': if not self.lego: self.lego = Lego() if self.lego.idle: thread.start_new_thread(self.start_lego, ()) elif self.lego and data == 'stop': self.lego.stop() elif self.lego and data == 'reset': self.lego.reset() elif data == 'exit': exit_app = True del self.lego break srv.close()
def main(): """main""" csin_port, csout_port, crin_port, crout_port, sin_port, rin_port, loss_rate = checkCommandArgs( ) #csout socket csout = Client(IP, csout_port) csout.connect(IP, sin_port) #csin socket csin = Server(IP, csin_port, BUFFER_SIZE) csin.accept() #crout socket crout = Client(IP, crout_port) crout.connect(IP, rin_port) #crin socket crin = Server(IP, crin_port, BUFFER_SIZE) crin.accept() left_open = True right_open = True while left_open or right_open: print("selecting") ready, _, _ = select.select([csin.connection, crin.connection], [], []) for server in ready: if server is csin.connection: pack = csin.receive() if pack == b"": data = pack right_open = False else: data = pickle.loads(pack) if not packCheck(data, csin, crout, loss_rate): continue pack = bitError(pack) crout.send(pack) elif server is crin.connection: pack = crin.receive() if pack == b"": data = pack left_open = False else: data = pickle.loads(pack) if not packCheck(data, crin, csout, loss_rate): continue pack = bitError(pack) csout.send(pack)
def main(): """main""" expected = 0 rin_port, rout_port, crin_port, file = checkCommandArgs() #rin socket rin = Server(IP, rin_port, BUFFER_SIZE) rin.accept() #rout socket rout = Client(IP, rout_port) rout.connect(IP, crin_port) #opens and creates file open_file = File(file) while True: buf = rin.receive() print("recieved") pack = pickle.loads(buf) print(pack) if not packChecker(pack): continue response = Packet(ACKNOWLEDGMENT_PACKET, pack.seq_no, 0) rout.send(pickle.dumps(response)) print("sent") if pack.seq_no == expected: expected += 1 else: continue if pack.data_len > 0: open_file.write(pack.data) else: break open_file.close() rout.shutdown() rin.close() rout.close()
def main(): """Main""" next_no = 0 exit_flag = False sin_port, sout_port, csin_port, file = checkCommandArgs() #sin socket sin = Server(IP, sin_port, BUFFER_SIZE) sin.accept() #sout socket sout = Client(IP, sout_port) sout.connect(IP, csin_port) open_file = File(file) buffer = PacketBuffer() sent = 0 while (not exit_flag): data, data_len = open_file.readBytes() pack = Packet(DATA_PACKET, next_no, data_len, data) if data_len == 0: exit_flag = True buffer.onqueue(pack) while True: sout.send(pickle.dumps(buffer.peek())) sent += 1 if not sin.receiveSecond(next_no): print("no responce or incorrect responce") continue print("response and checked") next_no += 1 buffer.dequeue() break open_file.close() sout.shutdown() sin.close() sout.close() print("sent: " + str(sent))
def main(): server = Server() host = input( "Type server IP or just press enter to use default (default is {}):". format(server.DEFAULT_HOST)) host = host.strip() # get rid of whitespaces at the end and beginning if host == "": host = server.DEFAULT_HOST allowed_chars = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.'} if not set(host).issubset(allowed_chars) or len(host) < 7 or len( host) > 15 or host.count('.') != 3: print("Incorrect IP address.") server.close_all() return port = input( "Type port number or just press enter to use default (default is {}):". format(server.DEFAULT_PORT)) if port != "": try: port = int(port) except ValueError: print("Error: Given input is not a number.") server.close_all() return else: port = server.DEFAULT_PORT try: server.initialize_server(host=host, port=port) except socket.error: print("Error: Initializing server failed.") print("Server is listening...") while True: try: conn, addr = server.accept() except socket.error: print("Error: Could not establish connection.") break print("Connection established with address:", addr, end="\n\n") server.create_client_thread(conn, addr) print("Number of currently connected clients: ", len(server.clients)) server.close_all() print("Server closed.")
def test_send_read(self): # запуск эхо-клиента в другом потоке client_thread = threading.Thread(target=self.run_fake_client) client_thread.start() send_msg = 'Hello, World!' messenger_server = Server('127.0.0.1', 7777) client, add = messenger_server.accept() client.send(send_msg.encode('utf-8')) recv_msg = client.recv(1024).decode('utf-8') assert send_msg == recv_msg client.close() messenger_server.close() client_thread.join()
""" For debugging, measuring time. After a TicToc object called .tic(), pass the object and call this to see how much time since then passed. :param timer: TicToc object """ elapsed = timer.tocvalue(restart=True) * 1000 print(string + ": " + str(int(elapsed))) if __name__ == "__main__": server_discovery = ServerDiscovery( discovery_port) # Starts a new thread with UDP socket. server = Server(recv_port, send_port) server.bind() while True: server.accept() print(server.client_recv_socket) print(server.client_sender_socket) while True: try: data = server.receive().decode() except: print("bad data") continue print(data) if data == "close": server.close_client() break elif data == "ping": server.ping_response() elif data == "request_screenshot":
print('Сервер запущен:', server.get_name()) except OSError as e: print('Ошибка запуска:', e.strerror) new_clients = {} valid_clients = [] messages_to_send = [] if server: print('Сервер ожидает подключения...') try: while True: try: client_socket, client_address = server.accept() except OSError: pass else: print('Подключен новый клиент:', client_address) new_clients[client_socket] = time.time() finally: current_time = time.time() for client, conn_time in new_clients.copy().items(): if current_time - conn_time > _VALIDATION_TIMEOUT: print( 'Вышло время вылидации клиента. Клиент отключен:', client.getpeername()) new_clients.pop(client) client.close()