建立一個Twisted Reactor TCP客戶端
與SocketServer TCP客戶端不一樣的是,這個例子與之前的所有其他客戶端看上去都不大一樣。它是完全Twisted的。
例16.8 Twisted Reactor Timestamp TCP客戶端(tsTclntTW.py)
用Twisted重寫我們已經熟悉的時間戳TCP客戶端。
1#!/usr/bin/env python |
逐行解釋
1~6行
跟之前所有的客戶端程式類似,這裡還是匯入Twisted的元件。
8~22行
與伺服器一樣,我們擴充套件Protocol,重寫同樣的函式connectionMade()和dataReceived()。這兩個函式的用途也跟伺服器一樣。我們新加一個自己的函式sendData(),用於在需要傳送資料時呼叫。
由於我們現在是客戶端,所以我們要主動發起跟伺服器的對話。一旦連線建立好之後,我們先傳送一個訊息,伺服器回覆這個訊息,我們把收到的回覆顯示在螢幕上,然後再傳送其他訊息給伺服器。
這個過程會一直迴圈,直到使用者沒有給任何輸入時,連線結束。結束時,就不是呼叫transport物件的write()函式傳資料給伺服器了,而是呼叫loseConnection()函式來關閉套接字。這時,工廠的client ConnectionLost()函式會被呼叫,同時,reactor就被關閉,指令碼的執行就結束了。由於某些原因,clientConnectionFailed()被呼叫時,reactor也會被關閉。
指令碼的最後一部分是建立一個客戶端工廠,連線到伺服器,然後執行reactor。注意,我們在這裡例項化了客戶端工廠,而不是像在伺服器裡那樣把它傳到reactor中。這是因為,我們不是等待客戶端連線的伺服器,伺服器在有連線時要為每個連線建立一個新的protocol物件。我們只是一個客戶端,所以我們只要建立一個protocol物件,連線到伺服器,伺服器的工廠會建立一個protocol物件來與我們對話。
相關文章
- python建立tcp服務端和客戶端PythonTCP服務端客戶端
- 如何建立一個Java遊戲客戶端Java遊戲客戶端
- 實現一個clickhouse tcp協議客戶端驅動TCP協議客戶端
- TCP/UDP簡易通訊框架原始碼,支援輕鬆管理多個TCP服務端(客戶端)、UDP客戶端TCPUDP框架原始碼服務端客戶端
- golang實現tcp客戶端服務端程式GolangTCP客戶端服務端
- 使用 Webix 建立 Email 客戶端WebAI客戶端
- 如何建立NEO輕客戶端客戶端
- CXF建立webservice客戶端和服務端Web客戶端服務端
- Android-TCP客戶端的實現AndroidTCP客戶端
- 【windows socket+TCP伺服器客戶端】WindowsTCP伺服器客戶端
- FishRedux完成一個玩安卓客戶端Redux安卓客戶端
- 手擼一個新聞客戶端客戶端
- 笨辦法學C 練習45:一個簡單的TCP/IP客戶端TCP客戶端
- vncserver建立與客戶端連線VNCServer客戶端
- websocket(多個客戶端)Web客戶端
- GankIo又一個ReactNative客戶端React客戶端
- 7.4 為投注合約建立客戶端客戶端
- git客戶端建立本地公鑰Git客戶端
- python 實現 TCP、UDP 客戶端最簡流程PythonTCPUDP客戶端
- ESP作為單連線中的TCP客戶端TCP客戶端
- C語言透過socket實現TCP客戶端C語言TCP客戶端
- 初識Modbus TCP/IP-------------C#編寫Modbus TCP客戶端程式(二)TCPC#客戶端
- 一個高顏值Flutter版WanAndroid客戶端FlutterNaNAndroid客戶端
- 寫一個Flutter彩票客戶端--開獎列表Flutter客戶端
- React Native 專案(One 【一個】客戶端)React Native客戶端
- CXF入門教程(2) -- 第一個客戶端客戶端
- TCP程式設計之服務端和客戶端的開發TCP程式設計服務端客戶端
- TCP通訊客戶端和服務端簡單程式碼實現TCP客戶端服務端
- C#之使用CefSharp建立客戶端C#客戶端
- 「完整案例」基於Socket開發TCP傳輸客戶端TCP客戶端
- 匯川AM401的TCP客戶端通訊TCP客戶端
- 客戶端JavaScript的5個弊端客戶端JavaScript
- 基於node的tcp客戶端和服務端的簡單通訊TCP客戶端服務端
- TCP協議服務端和客戶端的連線與通訊TCP協議服務端客戶端
- 聚聞 ~ 一個聚合資料新聞客戶端客戶端
- ftp客戶端軟體,ftp客戶端軟體哪個好用,使用方法FTP客戶端
- Java建立WebService服務及客戶端實現JavaWeb客戶端
- 在netweaver中建立應用程式客戶端客戶端