day18-作業(yè)(網(wǎng)絡(luò)編程)

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

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

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

  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,333評(píng)論 0 10
  • 1、第八章 Samba服務(wù)器2、第八章 NFS服務(wù)器3、第十章 Linux下DNS服務(wù)器配站點(diǎn),域名解析概念命令:...
    哈熝少主閱讀 3,906評(píng)論 0 10
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,656評(píng)論 1 32
  • 網(wǎng)絡(luò)編程 一.楔子 你現(xiàn)在已經(jīng)學(xué)會(huì)了寫(xiě)python代碼,假如你寫(xiě)了兩個(gè)python文件a.py和b.py,分別去運(yùn)...
    go以恒閱讀 2,246評(píng)論 0 6
  • 生活又回歸到了一片平靜,我討厭平靜,這讓我找不到生活的美好。 電影不好看,手機(jī)也不好玩,平靜使我焦慮。 我想過(guò)山車...
    陳迷呀閱讀 458評(píng)論 3 6

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