成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python大佬養(yǎng)成計(jì)劃--協(xié)程實(shí)現(xiàn)TCP連接

fuchenxuan / 1819人閱讀

摘要:協(xié)程實(shí)現(xiàn)連接在網(wǎng)絡(luò)通信中,每個(gè)連接都必須創(chuàng)建新線程或進(jìn)程來處理,否則,單線程在處理連接的過程中,無法接受其他客戶端的連接。所以我們嘗試使用協(xié)程來實(shí)現(xiàn)服務(wù)器對(duì)多個(gè)客戶端的響應(yīng)。

協(xié)程實(shí)現(xiàn)TCP連接

在網(wǎng)絡(luò)通信中,每個(gè)連接都必須創(chuàng)建新線程(或進(jìn)程) 來處理,否則,單線程在處理連接的過程中, 無法接受其他客戶端的連接。所以我們嘗試使用協(xié)程來實(shí)現(xiàn)服務(wù)器對(duì)多個(gè)客戶端的響應(yīng)。
與單一TCP通信的構(gòu)架一樣,只是使用協(xié)程來實(shí)現(xiàn)多個(gè)任務(wù)同時(shí)進(jìn)行。

#服務(wù)端
import socket
from gevent import monkey
import gevent
monkey.patch_all()
def handle_conn(seObj):
    while True:
        re_Data  = seObj.recv(1024).decode("utf-8")
        if re_Data == "quit":
            break
        print("client>>",re_Data)
        value  = input("server>>")
        se_Data = seObj.send(value.encode("utf-8"))
        if se_Data == "quit":
            break
if __name__ == "__main__":
    server = socket.socket()
    server.bind(("192.168.1.227",9876))
    print("服務(wù)已開啟")
    server.listen(4)
    while True:
        seObj,add = server.accept()
        gevent.spawn(handle_conn,seObj)
    seObj.close()
    server.close()
import  socket

# 1. 創(chuàng)建客戶端的socket對(duì)象
client = socket.socket()
# 2. 連接服務(wù)端, 需要指定端口和IP
client.connect(("192.168.1.227",9876))
while True:
    # 3. 給服務(wù)端發(fā)送數(shù)據(jù)
    send_data = input("client:>")
    client.send(send_data.encode("utf-8"))
    if send_data == "quit":
        break
    # 4. 獲取服務(wù)端返回的消息
    recv_data = client.recv(1024).decode("utf-8")
    if recv_data == "quit":
        break
    print("server:>%s" %(recv_data))
# 5. 關(guān)閉socket連接
client.close()

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42611.html

相關(guān)文章

  • python大佬養(yǎng)成計(jì)劃----協(xié)程

    摘要:協(xié)程,又稱微線程,纖程。最大的優(yōu)勢就是協(xié)程極高的執(zhí)行效率。生產(chǎn)者產(chǎn)出第條數(shù)據(jù)返回更新值更新消費(fèi)者正在調(diào)用第條數(shù)據(jù)查看當(dāng)前進(jìn)行的線程函數(shù)中有,返回值為生成器庫實(shí)現(xiàn)協(xié)程通過提供了對(duì)協(xié)程的基本支持,但是不完全。 協(xié)程,又稱微線程,纖程。英文名Coroutine協(xié)程看上去也是子程序,但執(zhí)行過程中,在子程序內(nèi)部可中斷,然后轉(zhuǎn)而執(zhí)行別的子程序,在適當(dāng)?shù)臅r(shí)候再返回來接著執(zhí)行。 最大的優(yōu)勢就是協(xié)程極高...

    svtter 評(píng)論0 收藏0
  • python大佬養(yǎng)成計(jì)劃----socket實(shí)現(xiàn)TCP通信

    摘要:我們來編寫一個(gè)簡單的服務(wù)器程序,它接收客戶端連接,回復(fù)客戶端發(fā)來的請(qǐng)求。如果一切順利,新浪的服務(wù)器接受了我們的連接,一個(gè)連接就建立起來的,后面的通信就是發(fā)送網(wǎng)頁內(nèi)容了。 TCP TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由IETF的RFC 793定義。在簡化的計(jì)算機(jī)網(wǎng)絡(luò)OSI模型中,它完成第四...

    layman 評(píng)論0 收藏0
  • python大佬養(yǎng)成計(jì)劃----socket實(shí)現(xiàn)UDP通信

    摘要:是建立可靠連接,并且通信雙方都可以以流的形式發(fā)送數(shù)據(jù)。相對(duì),則是面向無連接的協(xié)議。測試結(jié)果用兩個(gè)命令行分別啟動(dòng)服務(wù)器和客戶端測試開啟服務(wù)端完成一次通信 UDP TCP是建立可靠連接, 并且通信雙方都可以以流的形式發(fā)送數(shù)據(jù)。 相對(duì)TCP, UDP則是面向無連接的協(xié)議。使用UDP協(xié)議時(shí), 不需要建立連接, 只需要知道對(duì)方的IP地址和端口號(hào), 就可以直接發(fā)數(shù)據(jù)包。 但是, 能不能到達(dá)就不知道...

    Juven 評(píng)論0 收藏0
  • python大佬養(yǎng)成計(jì)劃----socket網(wǎng)絡(luò)編程

    摘要:一個(gè)包來了之后,到底是交給瀏覽器還是,就需要端口號(hào)來區(qū)分。每個(gè)網(wǎng)絡(luò)程序都向操作系統(tǒng)申請(qǐng)唯一的端口號(hào),這樣,兩個(gè)進(jìn)程在兩臺(tái)計(jì)算機(jī)之間建立網(wǎng)絡(luò)連接就需要各自的地址和各自的端口號(hào)。 網(wǎng)絡(luò)通信的三要素 IP 通信的時(shí)候, 雙方必須知道對(duì)方的標(biāo)識(shí), 好比發(fā)郵件必須知道對(duì)方的郵件地址。 互聯(lián)網(wǎng)上每個(gè)計(jì)算機(jī)的唯一標(biāo)識(shí)就是IP地址, 類似 123.123.123.123 。 IP地址實(shí)際上是一個(gè)32位...

    phodal 評(píng)論0 收藏0
  • python大佬養(yǎng)成計(jì)劃----HTML網(wǎng)頁設(shè)計(jì)(表單)

    摘要:數(shù)據(jù)傳輸方式輸入類控件表單元素也稱表單控件,按照填寫方式分為輸入類和下拉菜單類。按鈕的名字按鈕上顯示的文本重置菜單列表控件下拉菜單可以節(jié)省頁面空間。是單標(biāo)簽,用來定義下拉菜單中的選項(xiàng)。表示初始被選中的選項(xiàng)。 當(dāng)用戶熟悉了靜態(tài)網(wǎng)頁制作后就能感受到它的功能單一,會(huì)想建立具有交互性的動(dòng)態(tài)網(wǎng)站。動(dòng)態(tài)網(wǎng)站經(jīng)常用到的一個(gè)元素就是表單。表單是HTML的一個(gè)重要組成部分,是網(wǎng)站管理員與用戶之間溝通的橋...

    nevermind 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<