Я пишу код, который отправляет данные с клиента на сервер. Данные, которые мне нужно отправить, взяты из CSV-файла, который содержит около 1700 строк. В настоящее время я отправляю данные в большом буфере в целом, но я бы предпочел отправлять их построчно, а также получать их таким же образом. Я не уверен, стоит ли мне использовать функцию split()
или есть более эффективные способы сделать то же самое.
Примечание: этот вопрос основан на сокете Python для отправки строк данных
У меня точно такая же проблема. Ответ, данный там для серверной части, не имеет смысла для меня. Вот этот ответ повторяется здесь для ясности.
#server.py
def read_line(sock):
return "".join(iter(lambda:sock.recv(1),"\n"))
Мне нужно посмотреть, как добавить этот ответ в приведенный ниже код сервера.
Сервер ...
import socket
import ipdb
result = ""
HOST = 'LOCAL_IP'
PORT = 42050
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
print "Server running", HOST, PORT
s.listen(5)
conn, addr = s.accept()
print'Connected by', addr
while True:
data = conn.recv(409600)
print repr(data.split("' "))
if not data:
break
print "Done Receiving"
conn.close()
Клиент ...
import socket
HOST = 'SERVER_IP'
PORT = 42050
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while True:
for line in open('target.csv', 'rb'):
s.send(line)
break
print "Done Sending"
s.close()
Спасибо за вашу помощь.