Как отправить каждую строку CSV по одному через сокет - PullRequest
0 голосов
/ 05 ноября 2018

Я пишу код, который отправляет данные с клиента на сервер. Данные, которые мне нужно отправить, взяты из 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()

Спасибо за вашу помощь.

...