我正在编写一个代码,将数据从客户端发送到服务器。我需要发送的数据来自csv文件,该文件大约有1,700行。目前,我将数据作为一个整体发送到一个较大的缓冲区中,但是我希望逐行发送它,并且也以相同的方式接收它。我不确定是否应该使用split()
函数,或者是否有更好的方法来执行相同的操作。
注意:此问题基于Python socket to send rows of data
我有完全相同的问题。对于服务器部分给出的答案对我来说毫无意义。为了清楚起见,这里重复了这个答案。
#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()
谢谢您的帮助。