Почему пропускаются только первые две строки? Проблема клиента сервера Python - PullRequest
0 голосов
/ 04 марта 2020

Я работаю с TCP-сервером и клиентской программой. Я открываю файл в клиенте и отправляю данные на сервер построчно. Когда сервер получает первую строку, он сравнивает ее со своей таблицей, если сервер совпадений отправляет сообщение обратно клиенту. Я могу отправить первые две строки от клиента на сторону сервера, но когда вторая строка попадает на сервер, она не сравнивается

Код клиента

#open and read file
    open_f = open("PROJI-HNS.txt", "r")
    string = open_f.read()
    hostnames = string.splitlines()

    #while True:
        #counter = 0
        #print(hostnames, type(hostnames))
    for i in hostnames:
        cs.send(i.encode('utf-8'))
        data_from_server=cs.recv(1024)
        print (data_from_server.decode('utf-8'))

# close the cclient socket
    cs.close()
    exit()

Код сервера

    fp = open("PROJI-DNSRS.txt", "r")
    table = []
    lines = fp.readlines()
    for L in lines:
        entry = L.strip().split(' ')
        table.append(entry)

    fp.close()
    #str1 = " "
    while True:
        data_from_client = server_sock.recv(1024)
        queried_hostname = data_from_client.decode('utf-8')
        print("[S]: hostname recieved is: ", queried_hostname)
        #Compare hostname with the table
        for entry in table:
            if entry[0] == queried_hostname:
                omg = ' '.join([str(elem) for elem in entry])
                server_sock.sendall(omg.encode('utf-8'))
                break
        # Close the connection from client
    server_sock.close()
    exit()

мой результат

[C]: Client socket created
[S]: Got a connection request from a client at ('172.31.207.62', 52227)
kill.cs.rutgers.edu
[S]: hostname recieved is:  kill.cs.rutgers.edu
kill.cs.rutgers.edu 182.48.3.2 A
mx.rutgers.com
[S]: hostname recieved is:  mx.rutgers.com

Hit ENTER  to exit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...