摘要:協程實現連接在網絡通信中,每個連接都必須創建新線程或進程來處理,否則,單線程在處理連接的過程中,無法接受其他客戶端的連接。所以我們嘗試使用協程來實現服務器對多個客戶端的響應。
協程實現TCP連接
在網絡通信中,每個連接都必須創建新線程(或進程) 來處理,否則,單線程在處理連接的過程中, 無法接受其他客戶端的連接。所以我們嘗試使用協程來實現服務器對多個客戶端的響應。
與單一TCP通信的構架一樣,只是使用協程來實現多個任務同時進行。
#服務端 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("服務已開啟") server.listen(4) while True: seObj,add = server.accept() gevent.spawn(handle_conn,seObj) seObj.close() server.close()
import socket # 1. 創建客戶端的socket對象 client = socket.socket() # 2. 連接服務端, 需要指定端口和IP client.connect(("192.168.1.227",9876)) while True: # 3. 給服務端發送數據 send_data = input("client:>") client.send(send_data.encode("utf-8")) if send_data == "quit": break # 4. 獲取服務端返回的消息 recv_data = client.recv(1024).decode("utf-8") if recv_data == "quit": break print("server:>%s" %(recv_data)) # 5. 關閉socket連接 client.close()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42611.html
摘要:協程,又稱微線程,纖程。最大的優勢就是協程極高的執行效率。生產者產出第條數據返回更新值更新消費者正在調用第條數據查看當前進行的線程函數中有,返回值為生成器庫實現協程通過提供了對協程的基本支持,但是不完全。 協程,又稱微線程,纖程。英文名Coroutine協程看上去也是子程序,但執行過程中,在子程序內部可中斷,然后轉而執行別的子程序,在適當的時候再返回來接著執行。 最大的優勢就是協程極高...
摘要:我們來編寫一個簡單的服務器程序,它接收客戶端連接,回復客戶端發來的請求。如果一切順利,新浪的服務器接受了我們的連接,一個連接就建立起來的,后面的通信就是發送網頁內容了。 TCP TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,由IETF的RFC 793定義。在簡化的計算機網絡OSI模型中,它完成第四...
摘要:是建立可靠連接,并且通信雙方都可以以流的形式發送數據。相對,則是面向無連接的協議。測試結果用兩個命令行分別啟動服務器和客戶端測試開啟服務端完成一次通信 UDP TCP是建立可靠連接, 并且通信雙方都可以以流的形式發送數據。 相對TCP, UDP則是面向無連接的協議。使用UDP協議時, 不需要建立連接, 只需要知道對方的IP地址和端口號, 就可以直接發數據包。 但是, 能不能到達就不知道...
摘要:一個包來了之后,到底是交給瀏覽器還是,就需要端口號來區分。每個網絡程序都向操作系統申請唯一的端口號,這樣,兩個進程在兩臺計算機之間建立網絡連接就需要各自的地址和各自的端口號。 網絡通信的三要素 IP 通信的時候, 雙方必須知道對方的標識, 好比發郵件必須知道對方的郵件地址。 互聯網上每個計算機的唯一標識就是IP地址, 類似 123.123.123.123 。 IP地址實際上是一個32位...
摘要:數據傳輸方式輸入類控件表單元素也稱表單控件,按照填寫方式分為輸入類和下拉菜單類。按鈕的名字按鈕上顯示的文本重置菜單列表控件下拉菜單可以節省頁面空間。是單標簽,用來定義下拉菜單中的選項。表示初始被選中的選項。 當用戶熟悉了靜態網頁制作后就能感受到它的功能單一,會想建立具有交互性的動態網站。動態網站經常用到的一個元素就是表單。表單是HTML的一個重要組成部分,是網站管理員與用戶之間溝通的橋...
閱讀 1609·2021-11-02 14:48
閱讀 3664·2019-08-30 15:56
閱讀 2777·2019-08-30 15:53
閱讀 3220·2019-08-30 14:09
閱讀 3111·2019-08-30 12:59
閱讀 2866·2019-08-29 18:38
閱讀 2704·2019-08-26 11:41
閱讀 2224·2019-08-23 16:45