day18-網(wǎng)絡(luò)編程.PNG
Server.py文件
import os
import socket
server = socket.socket()
server.bind(('10.7.181.132', 8890))
server.listen(200)
print('開(kāi)始監(jiān)聽(tīng)......')
connect, address = server.accept()
while True:
send_message = 'a.請(qǐng)求文字信息\nb.請(qǐng)求圖片信息'
connect.send(send_message.encode())
answer1 = connect.recv(1024).decode(encoding='utf-8')
if answer1 == 'a':
print('您可以開(kāi)始和客戶端進(jìn)行溝通了')
while True:
chat_client = connect.recv(1024).decode(encoding='utf-8')
print(chat_client)
message = input('服務(wù)端:').encode()
connect.send(message)
print('\r\n')
if chat_client == 'bye' or chat_client == '再見(jiàn)':
break
elif answer1 == 'b':
print('為客戶提供圖片信息')
list1 = os.listdir('files')
choices2 = str(list1)
connect.send(choices2.encode())
answer2 = connect.recv(2048).decode(encoding='utf-8')
with open('files/' + answer2, 'rb') as f:
connect.send(f.read())
else:
print('選項(xiàng)不正確,關(guān)閉...')
connect.close()
break
files文件夾供Server使用
files.PNG
Client.py文件
import socket
client = socket.socket()
client.connect(('10.7.181.132', 8890))
choices1 = client.recv(1024)
while True:
print(choices1.decode(encoding='utf-8'))
answer1 = input('請(qǐng)選擇:')
client.send(answer1.encode())
if answer1 == 'a':
print('現(xiàn)在您可以開(kāi)始和服務(wù)器進(jìn)行溝通了')
while True:
message = input('客戶端:')
client.send(message.encode())
print('發(fā)送成功...')
chat_server = client.recv(1024).decode(encoding='utf-8')
print('服務(wù)端:', chat_server)
print('\r\n')
if message == 'bye' or message == '再見(jiàn)':
break
elif answer1 == 'b':
list1 = eval(client.recv(2048).decode(encoding='utf-8'))
while True:
print(list1)
answer2 = input('請(qǐng)輸入你想要的圖片的名字:')
if answer2 in list1:
client.send(answer2.encode())
load_path = 'files2/' + answer2
while True:
recv_photo = client.recv(1024)
# print(len(recv_photo))
with open(load_path, 'ab') as f:
f.write(recv_photo)
if len(recv_photo) < 1024:
print('圖片下載完成')
break
break
else:
print('輸入錯(cuò)誤,請(qǐng)重新選擇')
else:
print('沒(méi)有該選項(xiàng),退出程序')
client.close()
break
files2文件夾供Client使用
files2.PNG