Example #1
0
class Segment:
    def __init__(self, src_port=0x0, dst_port=0x0, data=''):
        super().__init__()
        self.src_port = src_port
        self.dst_port = dst_port
        self.header = Header()
        self.data = data
        pass

    def build_segment(self, seq=0x0, ack=0x0):
        self.header.source_port = self.src_port
        self.header.destination_port = self.dst_port
        self.header.sequence_number = seq
        self.header.ack_number = ack
        segmento = ''
        if len(self.data) != 0:
            self.header.window_size = len(self.data)
            segmento = self.header.build_header()
            if len(self.data) == 700: segmento += self.data
            else: segmento += self.data + (700 - len(self.data)) * "0"

        else:
            self.header.window_size = 0x0
            segmento = self.header.build_header()
        return bytearray.fromhex(segmento)

    pass