def send(self): data = datagram_pb2.Data() data.seq_num = self.seq_num data.send_ts = curr_ts_ms() data.sent_bytes = self.sent_bytes data.delivered_time = self.delivered_time data.delivered = self.delivered data.payload = self.dummy_payload serialized_data = data.SerializeToString() self.sock.sendto(serialized_data, self.peer_addr) self.seq_num += 1 self.sent_bytes += len(serialized_data)
def construct_ack_from_data(self, serialized_data): """Construct a serialized ACK that acks a serialized datagram.""" data = datagram_pb2.Data() data.ParseFromString(serialized_data) ack = datagram_pb2.Ack() ack.seq_num = data.seq_num ack.send_ts = data.send_ts ack.sent_bytes = data.sent_bytes ack.delivered_time = data.delivered_time ack.delivered = data.delivered ack.ack_bytes = len(serialized_data) return ack.SerializeToString()