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

  1. 客戶端和服務(wù)器聊天,可以一直聊天,直到一方發(fā)送’拜拜’。然后就可以和下一個人一直聊
#服務(wù)器端:
import socket
serve = socket.socket()
serve.bind(("10.7.187.128",9092))
serve.listen(1024)
print("開始監(jiān)聽")
while True:
    conversation,addr = serve.accept()
    while True:
        data = conversation.recv(1024)
        print("客戶端:",data.decode("utf-8"))
        if data.decode("utf-8") == "拜拜":
            conversation.send("拜拜".encode(encoding="utf-8"))
            print("下一會話者接聽")
            break
        message = input("輸入回話內(nèi)容:")
        conversation.send(message.encode(encoding="utf-8"))
        if message == "拜拜":
            print("下一會話者接聽")
            break
    conversation.close()

#客戶端:
import socket
client = socket.socket()
client.connect(("10.7.187.128",9092))
while True:
    message = input("輸入內(nèi)容:")
    client.send(message.encode(encoding="utf-8"))
    if message == "拜拜":
        print("斷開會話連接")
        break
    data = client.recv(1024)
    print("服務(wù)器:",data.decode("utf-8"))
    if data.decode("utf-8") == "拜拜":
        client.send("拜拜".encode(encoding="utf-8"))
        break
client.close()

2.客戶端給服務(wù)器發(fā)送請求,請求成功后,客戶端給服務(wù)發(fā)送‘1’,服務(wù)器就給客戶端發(fā)送一張圖片;客戶端給服務(wù)發(fā)送‘2’,服務(wù)器就給客戶端返回一個json文件中的內(nèi)容;客戶端給服務(wù)發(fā)送‘3’, 服務(wù)器返回’拜拜’,然后斷開連接

服務(wù)器:
import socket
serve = socket.socket()
serve.bind(("10.7.187.128",9096))
serve.listen(1024)
print("開始監(jiān)聽")
while True:
    conversation,addr = serve.accept()
    message = "請輸入編號1:獲取圖片;2:獲取json文件;3:拜拜"
    conversation.send(message.encode(encoding="utf-8"))
    data = conversation.recv(1024)
    print("客戶端:", data.decode("utf-8"))
    while True:
        data = conversation.recv(1024)
        print("客戶端:",data.decode("utf-8"))
        if data.decode("utf-8") =="1":
            with open("-4d29fda630106db2.jpg","rb") as f:
                content = f.read()
                conversation.send(content)
        elif data.decode("utf-8") == "2":
            with open("home.json","rb") as f:
                content = f.read()
                conversation.send(content)
        elif data.decode("utf-8") == "3":
            conversation.send("拜拜".encode(encoding="utf-8"))
        else:
            message = "請輸入編號1:獲取圖片;2:獲取json文件;3:拜拜"
            conversation.send(message.encode(encoding="utf-8"))
    conversation.close()

客戶端:
import socket
client = socket.socket()
client.connect(("10.7.187.128",9096))
message = "我要請求"
client.send(message.encode(encoding="utf-8"))
while True:
    re_data = client.recv(1024)
    print("服務(wù)器:",re_data.decode("utf-8"))
    message = input("輸入內(nèi)容:")
    client.send(message.encode(encoding="utf-8"))
    data1 = bytes()
    if message == "1":
        while True:
            data = client.recv(1024)
            data1 += data
            if not data:
                break
        print("數(shù)據(jù)接收完了")
        with open("回復(fù)1圖片.jpg","wb") as f:
            f.write(data1)
    elif message == "2":
        while True:
            data = client.recv(1024)
            data1 += data
            if not data:
                break
        print("數(shù)據(jù)接收完了")
        with open("new_home.json","w",encoding="utf-8") as f:
            f.write(data1)
    elif message == "3":
        break
    else:
        print("輸入有誤,請重新請求")
        break

最后編輯于
?著作權(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)容