我正在尝试使用简单的代码在保存一些数据后将文件从客户端发送到服务器。 我是初学者,所以我无法确定问题所在,或者我的代码中缺少的函数或行是什么
服务器:
import socket
server_socket = socket.socket()
server_socket.bind(('0.0.0.0', 8000))
server_socket.listen(0)
BUFFER_SIZE = 1024
conn, addr = server_socket.accept()
print ('Got connection from', addr)
while 1:
data = conn.recv(BUFFER_SIZE)
if not data:
break
fileREC=open (data , 'rb')
客户
import socket
client_socket = socket.socket()
client_socket.connect(("192.168.1.4", 8000))
BUFFER_SIZE = 1024
TextFile= open ("TextFile","w")
TextFile.write("Here is the file")
TextFile.write("Writing data")
TextFile.close()
f=open (TextFile , 'wb')
print ("Writing the file to binart ")
client_socket .send(f)
print ("Data Sent")
错误
ERROR:Traceback (most recent call last):
File "tenmay.py", line 5, in <module>
client_socket.connect(("192.168.1.4", 8000))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 111] Connection refused
答案 0 :(得分:1)
发送文件的内容而不是文件句柄:
f=open ("TextFile", 'rb')
client_socket.send(f.read())
客户端第二次运行服务器正在等待recv数据,因为accept()命令在循环之外。
客户端可以重复从循环中发送数据,但如果程序结束并且必须重新启动则不会。