Senden Sie ein Wörterbuch mit Hilfe von Sockets in Python?

Mein problem: Ok, ich habe ein kleines chat-Programm, was, wo bin ich grundsätzlich mit Hilfe von sockets zum senden von Nachrichten über ein Netzwerk.

Funktioniert es Super, aber wenn ich mich entschieden habe, es zu nehmen ein Schritt weiter, ich lief in ein problem.

Beschloss ich, fügen Sie einige Verschlüsselung an den Saiten war ich das senden über das Netzwerk, und so ich ging voran und schrieb das Skript, das das getan hat.

Das problem ist, dass anscheinend können Sie nicht nur senden Sie ein Wörterbuch über sockets, wie Sie vielleicht mit einer Schnur.

Habe ich einige der Forschung zuerst, und ich fand dieses Zeug über Gurken. Leider konnte ich nicht herausfinden, wie genau ich könnte Sie verwenden, um konvertieren von Zeichenfolgen, abgesehen davon, dass er es den Export des Wörterbuchs in eine Datei, aber ich kann das nicht tun, ohne änderung meines Programms.

Kann mir jemand erklären, wie ich bin, dies zu tun? Ich habe sah überall herum, aber ich kann nicht scheinen, um herauszufinden, wie.

Habe ich hochgeladen, was ich habe, so weit hier, wenn das kommt, interessiert das niemanden.

print("\n\t\t Fill out the following fields:")
HOST = input("\nNet Send Server Public IP: ")
PORT = int(input("\nNet Send Server Port: "))
#------------------------------------------------
#Assessing Validity of Connection
#------------------------------------------------
try:
    s = socket(AF_INET,SOCK_STREAM)
    s.connect((HOST,PORT))
    print("Connected to server:",HOST,)
except IOError:
    print("\n\n\a\t\tUndefined Connection Error Encountered")
    input("Press Enter to exit, then restart the script")
    sys.exit()
#-------------------------------------------------
#Now Sending and recieving mesages
#-------------------------------------------------


i = True
while i is True:
    try:
        User_input = input("\n Enter your message: ")
    Lower_Case_Conversion = User_input.lower()
    #Tdirectory just stores the translated letters
    Tdirectory = []
    # x is zero so that it translates the first letter first, evidently
    x = 0
    COUNTLIMIT = len(Lower_Case_Conversion)
    while x < COUNTLIMIT:
        for letter in Lower_Case_Conversion[x]:
            if letter in TRvalues:
                Tdirectory += [TRvalues[Lower_Case_Conversion[x]]]
        x = x + 1

        message = input('Send: ')
        s.send(message.encode())
        print("\n\t\tAwaiting reply from: ",HOST,)
        reply = s.recv(1024)
        print(HOST,"\n : ",reply)
    except IOError:
        print("\n\t\aIOError Detected, connection most likely lost.")
        input("\n\nPress Enter to exit, then restart the script")

Oh, und wenn Ihr Fragen, was TRvalues ist. Es ist das Wörterbuch mit den 'übersetzungen' für die Verschlüsselung von Nachrichten einfach.

try:
    TRvalues = {}
    with open(r"C:\Users\Owatch\Documents\Python\FunStuff\nsed.txt", newline="") as f:
        reader = csv.reader(f, delimiter=" ")
        TRvalues = dict(reader)

(Die übersetzungen sind, gehalten .txt-Import)

Gurke ist eine anständige Art der Serialisierung, sicher, aber Sie sollten nicht es verwenden, (Sicherheits-und Kompatibilitätsgründen). Verwenden Sie JSON statt.

InformationsquelleAutor Micrified | 2013-03-03

Schreibe einen Kommentar