def accept(self): while True: data, other = self.__socket.recvfrom(1024) package = Package.decode(data) if not package.is_syn: continue self.__other_addr = other self.__other_seq = package.seq self.start() self.__send_buffer.put(Package(self.__seq, 0, False, True, True)) return other
def recv_loop(sock, acks_buffer, recv_buffer, send_buffer, to_addr): while True: data, client = sock.recvfrom(1024) package = Package.decode(data) if package.is_ack: acks_buffer.put(package) elif package.is_syn: sock.sendto(Package(0, package.seq + 1, True, False, False).encode(), to_addr) else: recv_buffer.put(package) sock.sendto(Package(0, package.seq + 1, True, False, False).encode(), to_addr)
def recv_syn_res(sock, shared_other_seq): data, other = sock.recvfrom(1024) shared_other_seq.value = Package.decode(data).seq