如果它看起来是一个真正的新手问题,请提前致以问候和道歉。我是python的新手,或者为此而编程。我正在编写一个代码,用于将数据从客户端发送到服务器。我需要发送的数据来自csv文件,该文件大约有10,000行。目前我在一个大的缓冲区中发送数据作为一个整体,但我更愿意逐行发送它并以同样的方式接收它。我不确定是否应该使用split()函数,或者有更好的方法来做同样的事情。
客户......
import socket
HOST = 'server IP'
PORT = 42050
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
f = open('csvfile.csv', 'rb')
l = f.read(409600)
while True:
print l
s.send(l)
break
f.close()
print "Done Sending"
s.close()
服务器......
import socket
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)
if not data: break
print "Done Receiving"
conn.close()
提前感谢您的帮助。
答案 0 :(得分:0)
我不确定你的问题究竟是什么......但它很容易发送和接收线
#client.py
for line in open("my.csv"):
s.send(line)
#server.py
def read_line(sock):
return "".join(iter(lambda:sock.recv(1),"\n"))
iter(lambda:sock.recv(1),"\n")
与
基本相同result = ""
while not result.endswith("\n"): result += sock.recv(1)