用于发送数据行的Python套接字

时间:2015-09-28 16:24:12

标签: python sockets

如果它看起来是一个真正的新手问题,请提前致以问候和道歉。我是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()

提前感谢您的帮助。

1 个答案:

答案 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)