日韩午夜福利a无码,三级亚洲中文字幕,免费高清av一区二区三区,国产精品白丝祙喷水视频

您現(xiàn)在所在的位置:首頁 >學(xué)習(xí)資源 > Python全棧+人工智能入門教材 > Python基礎(chǔ)入門教程30.2:企業(yè)級開發(fā)進(jìn)階 TCP實戰(zhàn)

Python基礎(chǔ)入門教程30.2:企業(yè)級開發(fā)進(jìn)階 TCP實戰(zhàn)

來源:奇酷教育 發(fā)表于:

1 簡易對講程序的需求對講機(jī)程序,就是雙方互相通話的過程,簡單一點(diǎn)的邏輯就是雙方每次只能說一句話,然后等待對方回答之后繼續(xù)說話。2

1. 簡易對講程序的需求

對講機(jī)程序,就是雙方互相通話的過程,簡單一點(diǎn)的邏輯就是雙方每次只能說一句話,然后等待對方回答之后繼續(xù)說話。

2. 編程實現(xiàn)服務(wù)端

import socket

# 創(chuàng)建服務(wù)端套接字對象
service = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 綁定主機(jī)和端口號
service.bind(("", 8888))

# 啟動監(jiān)聽
service.listen(1)

# 接收客戶端連接
print("服務(wù)端程序啟動成功,等待客戶端接入.....")
conn, addr = service.accept()
print("客戶端已經(jīng)接入,可以進(jìn)行通信" + str(addr) + ";等待客戶端發(fā)送消息...")

# 發(fā)送歡迎消息
conn.sendall("天王蓋地虎,寶塔鎮(zhèn)河妖".encode("utf-8"))

# 循環(huán)讀取消息
while True:
    # 接收并打印客戶端發(fā)送消息
    msg = conn.recv(1024)
    msg = msg.decode("utf-8")
    print("客戶端:" + msg)
    # 如果客戶端發(fā)送bye字符串,跳出循環(huán)
    if msg == "bye":
        service.sendall("over!")
        break;
    # 向客戶端發(fā)送消息
    info = input("請輸入要發(fā)送給客戶端的消息:")
    info = info.encode("utf-8")
    conn.sendall(info)
# 關(guān)閉該客戶端的連接
conn.close()

3. 編程實現(xiàn)客戶端

import socket

# 創(chuàng)建客戶端套接字對象
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 連接服務(wù)器
client.connect(("192.168.10.115", 8888))

# 循環(huán)處理發(fā)送消息
while True:
    # 接收服務(wù)器的消息
    msg = client.recv(1024)
    msg = msg.decode("utf-8")
    print("服務(wù)器:" + msg)
    # 如果一旦接收到over!字符串,跳出循環(huán)
    if msg=="over!":
        print("程序退出")
        break;
    # 給服務(wù)器發(fā)送消息
    info = input("請輸入要發(fā)送的消息:")
    info = info.encode("utf-8")
    client.sendall(info)
#關(guān)閉客戶端套接字對象
client.close()

4. 測試程序

首先運(yùn)行服務(wù)端程序


服務(wù)端程序等待中

運(yùn)行客戶端程序


客戶端程序啟動

開始互相發(fā)送消息
服務(wù)端


服務(wù)端控制臺界面

客戶端


客戶端控制臺界面

整體效果如上所述,對于TCP網(wǎng)絡(luò)編程的部分內(nèi)容都有涉及,大家在獨(dú)立完成的基礎(chǔ)上,可以思考一個問題:怎么退出對話?!

>>>更多VR/AR入門教程:VR入門