buf = ip.get_packet() print(tcp, tcp.get_th_seq(), tcp.get_th_ack()) server.sendto(buf, ('127.0.0.1', 0)) tcp.set_FIN() buf = ip.get_packet() print(tcp, tcp.get_th_seq(), tcp.get_th_ack()) server.sendto(buf, ('127.0.0.1', 0)) state = 3 else: tcp_len = tcp.get_size() head_len = (ip_len + tcp_len) msg = data[head_len:] data_len = len(data) - head_len print(msg) ip, tcp = reply(ip, tcp) tcp.set_ACK() tcp.reset_PSH() tcp.set_th_ack(tcp.get_th_seq() + data_len) tcp.set_th_seq(1) tcp.calculate_checksum() buf = ip.get_packet() print(tcp, tcp.get_th_seq(), tcp.get_th_ack()) server.sendto(buf, ('127.0.0.1', 0)) elif state == 3: print('closed...') break print('\n')