コード例 #1
0
    def __test_packets(self):
        for i in range(1, len(PacketType) + 1):
            print("[", i, "] : ", PacketType(i), sep='')
        packet_type = int(input("[packet type]>"))
        packet = Packet(PacketType(packet_type))

        print('[0] : send')
        print('add content: ')
        print('[1] : Decimal')
        print('[2] : int')
        print('[3] : float')
        print('[4] : str')

        while True:
            value = int(input("[data type]>"))
            if value == 0:
                self.send(packet)
                break
            elif value == 1:
                dec = input("[Decimal] >")
                packet.add(Decimal(dec))
            elif value == 2:
                integer = input("[int] >")
                packet.add(int(integer))
            elif value == 3:
                flt = input("[float] >")
                packet.add(float(flt))
            elif value == 4:
                str = input("[str] >")
                packet.add(str)
コード例 #2
0
ファイル: server.py プロジェクト: Sadzka/Idle-Game
    def __listen(self):
        print("Listening...")
        cursor = Connection().getInstance()
        while True:
            data, clientInfo = self.incoming.receive()
            clientIP, clientPort = clientInfo

            print("DEBUG: Received from " + clientIP + ":" + str(clientPort))
            print("DEBUG: ", data)

            packet = Packet(raw_data=data)
            type = packet.get_type()

            print("DEBUG: Type ->", type)

            if type == PacketType.MESSAGE:
                print("message: ", packet.get())

            if type == PacketType.PING:
                outgoing_packet = Packet(PacketType.PING)
                outgoing_packet.add("pong")
                self.outgoing.send(outgoing_packet, clientIP, clientPort)

            if type == PacketType.LOGIN:
                outgoing_packet = Packet(PacketType.LOGIN)

                login = packet.get()
                password = packet.get()
                print("DEBUG: Login ->", login)
                print("DEBUG: Password ->", password)

                querry = "SELECT * FROM `users` WHERE `username`=? AND `password`=?"
                cursor.execute(querry, (login, password))

                users = cursor.fetchall()
                if len(users) == 1:
                    user = users[0]
                    print("DEBUG: Login success")
                    outgoing_packet.add(1)
                    self.users.append([user[0], user[1], clientIP, clientPort])
                else:
                    print("DEBUG: Login failed")
                    outgoing_packet.add(0)

                self.outgoing.send(outgoing_packet, clientIP, clientPort)
コード例 #3
0
            Receive data from a remote peer
           
            This function will WAIT UNTIL the whole packet
            has been received.
           
            @return: (data, remote_address)
        """
        data, server = self.sock.recvfrom(4096)
        return data, server
        
if __name__ == "__main__":   
    
    sock = UdpSocket()
    
    packet = Packet(packet_type=PacketType.MESSAGE)
    packet.add("ping")
    sock.send(packet, "127.0.0.1", 5555)

    packet = Packet(packet_type=PacketType.LOGIN)
    packet.add("User_123")
    packet.add("Password_123")
    sock.send(packet, "127.0.0.1", 5555)
    
    data, server = sock.receive()
    packet = Packet(raw_data = data)
    packet.get_type()
    result = packet.get()
    if result == 1:
        print("Login Success")
    else:
        print("Login Failed")