作業(yè)
服務(wù)器端
"""author = TK林"""
import socket
import os
# 創(chuàng)建套接字對象,設(shè)置ip地址和通訊協(xié)議類型
server = socket.socket()
# 綁定ip和端口
# server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 端口重復
server.bind(('10.7.181.112', 9999))
# 等待連接并設(shè)置同一時間連接的最大數(shù)量
server.listen(500)
while True:
connect, address = server.accept() # 接收信息
while True:
# 接收客戶端發(fā)送的message
recv_message = connect.recv(1024)
message = recv_message.decode(encoding='utf-8')
print(message)
if message == 'a':
message_s = input("請輸入:") # 服務(wù)器輸入信息
connect.send(message_s.encode()) # 發(fā)送服務(wù)器輸入的信息
elif message == 'b':
list_s = os.listdir(path='photo-set')
# print(list_s)
connect.send(str(list_s).encode())
recv_name = connect.recv(1024)
name = recv_name.decode(encoding='utf-8') # 接收圖片的名字
# print(name)
# print(type(name))
for x in list_s:
# print(type(x), x)
if name == x:
# print("hello")
with open('photo-set/{}'.format(name), 'rb') as f:
# print(f.read())
connect.send(f.read())
else:
print("名字輸入錯誤")
break
# connect.close() # 關(guān)閉
客戶端
"""author = TK林"""
import socket
import json
client = socket.socket()
# c.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 端口重復
client.connect(('10.7.181.112', 9999))
while True:
print("a.請求文字信息\nb.請求圖片信息")
char = input("請選擇a or b:")
if char == 'a':
client.send(char.encode()) # 發(fā)送消息
re_data = client.recv(1024) # 接收消息
print(re_data.decode(encoding='utf-8'))
elif char == 'b':
while True: # 接收圖片信息
client.send(char.encode()) # 發(fā)送消息
re_data = client.recv(1024)
re_list =re_data.decode(encoding='utf-8') # 將接收的json數(shù)據(jù)轉(zhuǎn)換為python數(shù)據(jù)
# print(re_list)
photo_name = input("請輸入你想要的圖片名字:")
client.send(photo_name.encode()) # 向服務(wù)器發(fā)送想要的圖片的名字
# print(type(photo_name))
while True: # 接收圖片
re_photo = client.recv(1024)
with open("photo-get/{}".format(photo_name), 'ab') as f:
# re_photo = client.recv(1024)
f.write(re_photo)
if len(re_photo) < 1024:
break
else:
print("輸入錯誤")