コード例 #1
0
ファイル: connection.py プロジェクト: ivandariojr/RxP
 def listenForConnections(srcIP, srcPort):
     sock = Connection.createSocket()
     sock.bind((srcIP, srcPort))
     data, address = sock.recvfrom(Packet.MAX_PACKET_LENGTH)
     conn = Connection(srcIP, srcPort, address[0], address[1], sock)
     conn.buffer.append(Packet.fromRawString(data))
     return conn
コード例 #2
0
ファイル: connection.py プロジェクト: ivandariojr/RxP
    def receive(self):
        if len(self.buffer) > 0:
            return self.buffer.pop()
        targetTime = time.time() + (Connection.TIMEOUT * 2)

        while targetTime > time.time():
            data, address = self.sock.recvfrom(Packet.MAX_PACKET_LENGTH)
            otherConnection = next((x for x in Connection.ActiveConnections if x.destAddress == address and x.destAddress != self.destAddress), None)

            if address == self.destAddress:
                if not Packet.checkIntegrity(data):
                    return None
                return Packet.fromRawString(data)
            elif otherConnection != None:
                otherConnection.buffer.append(Packet.fromRawString(data))
            else:
                #if address is not in active connections. Throw packet away
                continue
        return None
コード例 #3
0
ファイル: test_packet.py プロジェクト: ivandariojr/RxP
 def test_serialize_data(self):
     self.assertEqual(
         Packet.fromRawString(TestPacket.packet.serialize()).data,
         TestPacket.data,
         "Data Flag does not serialize or is not read Correctly"
     )
コード例 #4
0
ファイル: test_packet.py プロジェクト: ivandariojr/RxP
 def test_sanityCheck(self):
     original = TestPacket.packet
     deserialized = Packet.fromRawString(original.serialize())
     self.assertEqual(original, deserialized)