Как правильно отформатировать строки в новой строке для каждой строки, получаемой с сервера - PullRequest
0 голосов
/ 29 июня 2019

Итак, я получил клиент-серверную программу, которая шифрует / дешифрует строки, которые он получает из файла.Сервер правильно получает строки в правильном формате, используя .split ()

#this is correct
Geheime bericht 1
Project PAD
Wachtwoorden

Когда я хочу отправить эти данные обратно в .upper (), это приводит к клиенту вместо этого

GEHEIME BERICHT 1PROJECT PADWACHTWOORDEN

Используя .split (), он печатает слова на новой строке.Однако слова не возвращаются правильно.Это список .split ()

['GEHEIME', 'BERICHT', '1PROJECT', 'PADWACHTWOORDEN']

Это должно быть так (именно так клиент сначала отправляет его на сервер)

b'Geheime bericht 1\n'
b'Project PAD\n'
b'Wachtwoorden'

с использованием цикла forв списке печатает это как

GEHEIME
BERICHT
1PROJECT
PADWACHTWOORDEN

Как я могу решить эту проблему?Кажется, что основной источник проблемы возникает, когда я либо отправляю обратно дешифрованные, все ограниченные строки, либо когда я получаю их на стороне клиента.

Некоторый код на стороне клиента:

connectie = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connectie.connect((ipaddr, portnr))

with open('textinput.txt', 'rb') as inh:
    for lijn in inh:
        enc_data = publickey.encrypt(lijn.strip(), 16)
        print(lijn)
        connectie.send(enc_data[0])#verzend encrypted data
        time.sleep(1)

#ontvang de decrypted data/strings
decrypt_data = connectie.recv(2048).decode('utf-8')

Некоторый код на стороне сервера:

with clientconnectie:
    print("\nConnectie gemaakt met: " + conninfo[0] + ":" + str(conninfo[1]))
    while True:
        enc_data = clientconnectie.recv(2048)
        if not enc_data:
            break
        #print encrypted data zodat je kan zien dat het encrypted is
        #print(enc_data)
        data = privatekey.decrypt(enc_data)#decrypt ontvangen data


        #print("\nSuccesvol ontvangen en decrypt op Server:\n" +str(data.decode('utf-8')))
        #verzend de strings/data in uppercase

        clientconnectie.send(data.upper()) #it seems that the main problem is caused by this line
...