2019-08-14

作業(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("輸入錯誤")
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容