Metadata-Version: 2.1
Name: PacketHandler
Version: 1.0.8
Summary: Store data as packet. Serialize, Deserialize and Send, Recv, Encrypt, it.
Home-page: https://github.com/emrecpp/PacketHandler
Author: Emre Demircan
Author-email: emrecpp1@gmail.com
License: GPL
Download-URL: https://pypi.org/project/PacketHandler/
Keywords: Packet,socket,Handler,PacketHandler,Packet Handler,send,recv,serialize,serialization,deserialize,deserialization,compress,encrypt
Platform: UNKNOWN
Description-Content-Type: text/markdown
License-File: LICENSE.txt

# Python Packet Handler
Store data as packet. Send, Recv, Encrypt it.

For C#: https://github.com/emrecpp/DataPacket-CSharp

For C++: https://github.com/emrecpp/DataPacket-CPP

Take a Look! [Test](https://github.com/emrecpp/PacketHandler/blob/main/Test.py)

# Example Usage

```
from Packet import Packet, ref
import sys, socket, select, time

class opcodes:
    LOGIN=100
    LOGOUT=101

HOST, PORT = "127.0.0.1", 2000
```
# CLIENT
```
Paket = Packet(opcodes.LOGIN, Encrypt=True, Compress=True)
Username = "Emre"
Paket << Username << "123" << True << bytearray(b'\x07\x10BYTES\xFF') << ["Apple", "Banana", "Orange"]
Paket.Send(socket)
```
# SERVER
```
# Listener Thread
PaketListen = Packet()
while True:
    if PaketListen.Recv(socketServer):
        PaketListen.Print("RECEIVED PACKET (YOUR TITLE)!")
        if PacketListen.GetOpcode() == opcodes.LOGIN:
            UserName, Password, RememberMe, Data, Fruits = ref(str), ref(str), ref(bool), ref(bytearray), ref(list)
            PacketListen >> UserName >> Password >> RememberMe >> Data >> Fruits
            UserName, Password, RememberMe, Data, Fruits = str(UserName), str(Password), RememberMe.obj, bytearray(Data.obj), ", ".join(Fruits.obj)  # We have to cast ref object to (int, str, bool, bytearray ...)
            # Note: Can't use bool(RememberMe), this returns True everytime!!!

            print(f"Username: {UserName}\nPassword: {Password}\nRememberMe: {'Yes' if RememberMe else 'No'}\nData: {str(Data)}\nFruits: {Fruits}")
    else:
        return # Connection Lost

```

# OUTPUT

```
Username: Emre
Password: 123
RememberMe: Yes
Data: bytearray(b'\x07\x10BYTES\xff')
Fruits: Apple, Banana, Orange


*** RECEIVED PACKET (YOUR TITLE)! *** (67)
00000000: 00 64 04 06 00 00 00 00 00 04 45 6D 72 65 00 00   .d........Emre..
00000010: 00 03 31 32 33 01 00 00 00 08 07 10 42 59 54 45   ..123.......BYTE
00000020: 53 FF 00 00 00 1D 5B 22 41 70 70 6C 65 22 2C 20   S.ÿ.........[.".A.p.p.l.e.".,..
00000030: 22 42 61 6E 61 6E 61 22 2C 20 22 4F 72 61 6E 67   "Banana",."Orang
00000040: 65 22 5D                                           e"]

```




