使用tcp完成一个文件的传输,要求可以传输文本文件也可以传输图片从客户端发给服务端,
或者从服务端发给客户端均可
客户端:
#send_file
from socket import *
from time import sleep
s = socket()
addr = (('127.0.0.1',8888))
s.connect(addr)
f = open('file.jpg','rb')
file_name = input('name:')
s.send(file_name.encode())
sleep(0.1)
while True:
data = f.read(1024)
if not data:
sleep(0.1)
s.send(b'##')
break
s.send(data)
data = s.recv(1024)
print(data.decode())
f.close()
s.close()
下面是服务端
#recv_file.
from socket import *
s = socket()
s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
s.bind(('0.0.0.0',8888))
s.listen(5)
c,addr = s.accept()
file_name = c.recv(1024).decode()
try:
f = open(file_name,'wb')
except:
print('文件打开失败')
while True:
data = c.recv(1024)
if data == b'##':
break
f.write(data)
c.send(b'Receive over')
f.close()
c.close()
s.close()