Beispiel #1
0
            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))
            state = 1
        elif state == 1:
            if tcp.get_SYN() or not tcp.get_ACK():
                break
            print('connected...')
            state = 2
        elif state == 2:
            if tcp.get_FIN():
                ip, tcp = reply(ip, tcp)
                tcp.set_th_ack(tcp.get_th_seq() + data_len)
                tcp.set_th_seq(1)
                tcp.reset_FIN()
                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