Пример #1
0
 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
Пример #2
0
 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)
Пример #3
0
 def recv_syn_res(sock, shared_other_seq):
     data, other = sock.recvfrom(1024)
     shared_other_seq.value = Package.decode(data).seq