def parseMsg(self, message): # separate header and payload head = message[:HEADERLENGTH] payload = message[HEADERLENGTH:] # return pair (header, data) where header is a list and data is raw header = helpers.unpackHeader(head) print header return (header, payload)
def listen(self): synpacket, cliAddr = self.sockd.recvfrom(2048) self.clientPort = cliAddr[1] head = helpers.unpackHeader(synpacket) #header = packet.Header(head) # check that received packet has SYN flag set print head assert head[SYNF] == 1, "Invalid packet -- not SYN" # set ACK number from client sequence number self.lastack = head[SEQNUM] + 1 # connect with client print("connect to " + str(cliAddr)) self.sockd.connect(cliAddr) # instantiate sender/receiver self.sender = sender.Sender(self.sockd) self.receiver = receiver.Receiver(self) self.SYNReceived()