#!/usr/bin/env python3 import socket from spacepackets.ecss.tc import PusTelecommand EXP_ID = 278 APID = 1024 + EXP_ID SEND_PING_ONCE = True def main(): global SEND_PING_ONCE server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_addr = ("localhost", 4096) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.bind(server_addr) while True: server_socket.listen() (conn_socket, conn_addr) = server_socket.accept() print("TCP client {} connected", conn_addr) while True: bytes_recvd = conn_socket.recv(4096) if len(bytes_recvd) > 0: print(f"Received bytes from TCP client: {bytes_recvd.decode()}") elif len(bytes_recvd) == 0: break else: print("error receiving data from TCP client") if SEND_PING_ONCE: print("sending back ping") ping_tc = PusTelecommand(service=17, subservice=1, seq_count=0, apid=APID) conn_socket.sendall(ping_tc.pack()) SEND_PING_ONCE = False conn_socket.close() continue # server_socket.close() if __name__ == "__main__": main()