
作業(yè)要求
.png
功能能夠完成但是沒有做錯誤輸入處理
服務器
import os
from socket import *
# 1創(chuàng)建服務器套接字
server = socket()
server.bind(('10.7.181.105', 9909))
server.listen(512)
# 開始監(jiān)聽
connect, address = server.accept()
print('客服端ip:', address)
if connect:
send_message = '選項1.請求文字信息 \n選項2.請求圖片信息'
connect.send(send_message.encode())
# 2運行服務器
name_list = []
while True:
print('開始監(jiān)聽')
re_data = connect.recv(1024).decode(encoding='utf-8')
print(re_data)
send_message2 = ''
if re_data == '1':
send_message2 = '==========================\n' \
'請求圖片信息你會獲得一個所有圖片名字的列表\n' \
'通過輸入圖片的名字來下載圖片,輸入3結束會話\n' \
'選項2.請求圖片信息\n' \
'選項3.結束會話'
connect.send(send_message2.encode())
elif re_data == '2':
name_list = os.listdir('server/')
send_message2 = str(name_list) + '\n' \
'請輸入你要下載的圖片名字'
connect.send(send_message2.encode())
elif re_data == '3':
break
else:
if not name_list:
send_message2 = '選擇錯誤!!!!!!!!!\n' \
'請重新選擇:\n' \
+ send_message
connect.send(send_message2.encode())
elif re_data:
path = 'server/' + re_data
print(path)
with open(path, 'rb') as f:
connect.send(f.read())
connect.close()
客服端
"""
from copy import deepcopy
from socket import *
# 1創(chuàng)建客服端套接字
client = socket()
server_str = '10.7.181.105'
# input('請輸入要連接的服務器ip:')
client.connect((server_str, 9909))
re_data = client.recv(1024)
print(re_data.decode(encoding='utf-8'))
choose_input = input('請輸入你的選擇:')
choose_input2 = ''
i = 0
while True:
if choose_input in ['1', '2']:
client.send(choose_input.encode())
re_data = client.recv(1024)
print(re_data.decode(encoding='utf-8'))
choose_input = input('請輸入你的選擇:')
if choose_input == '3':
client.close()
break
elif choose_input not in ['1', '2']:
print(choose_input, i)
if choose_input != choose_input2:
print('1')
choose_input2 = deepcopy(choose_input)
client.send(choose_input.encode())
re_data = client.recv(1024)
print(len(re_data))
with open('client/'+choose_input, 'ab') as f:
f.write(re_data)
i += 1
if len(re_data) < 1024:
choose_input = '1'