Я работаю с 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