蜜桃精品成人影片_99热在线精品免费_日韩亚洲中字无码一区二区三区_亚洲中文字幕久久精品无码一区

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

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

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

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

1. 簡易對講程序的需求

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

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

import socket

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

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

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

# 接收客戶端連接
print("服務端程序啟動成功,等待客戶端接入.....")
conn, addr = service.accept()
print("客戶端已經接入,可以進行通信" + 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)
# 關閉該客戶端的連接
conn.close()

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

import socket

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

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

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

4. 測試程序

首先運行服務端程序


服務端程序等待中

運行客戶端程序


客戶端程序啟動

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


服務端控制臺界面

客戶端


客戶端控制臺界面

整體效果如上所述,對于TCP網絡編程的部分內容都有涉及,大家在獨立完成的基礎上,可以思考一個問題:怎么退出對話?!

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

 
铁力市| 兴义市| 黑水县| 常宁市| 江源县| 泰兴市| 榆林市| 冷水江市| 莲花县| 高要市| 泗洪县| 沈阳市| 九龙城区| 垦利县| 轮台县| 镶黄旗| 孝义市| 乌拉特中旗| 怀仁县| 格尔木市| 象州县| 郑州市| 沐川县| 永泰县| 化州市| 磐石市| 平罗县| 昂仁县| 从化市| 鄄城县| 房产| 东平县| 宁德市| 东至县| 浙江省| 南皮县| 凭祥市| 苗栗县| 土默特右旗| 常德市| 抚州市|