# -*- coding: utf-8 -*- #可以使用中文
from socket import *
import os
def server():
'''本函数从8081端口接收客户端传送的文件,以源recv_+文件名存储. '''
HOST=' '
PORT=8081
ADDR = (HOST, PORT)
BUFSIZE = 1024
recvSock = socket(AF_INET, SOCK_STREAM)
recvSock.bind(ADDR)
recvSock.listen(5)
print "等待连接..."
conn, addr = recvSock.accept()
print "客户端已连接—> ", addr
fhead = conn.recv(BUFSIZE) #接收要传送的文件名和文件大小
print fhead,'fhead'
list = fhead.split()
filesize = int(list[0])
filename = list[1].rstrip()
filename=filename
filename ='rcve_'+filename
fp = open(filename, 'wb')#创建本地文件
restsize = filesize
print "正在接收文件... ",
while 1:
if restsize > BUFSIZE:
filedata = conn.recv(BUFSIZE)
else:
filedata = conn.recv(restsize)
if not filedata: break
fp.write(filedata)
restsize = restsize - len(filedata)
if restsize == 0:
break
print "接收文件完毕,正在断开连接..."
fp.close()
conn.close()
recvSock.close()
print "连接已关闭..."
server()