国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

TCL/TK網(wǎng)絡(luò)編程:服務(wù)器端、客戶端的極簡(jiǎn)例子

2023-03-08 22:43 作者:象喻  | 我要投稿

服務(wù)器端:簡(jiǎn)單理解,就是一個(gè)軟件,它持續(xù)盯著本地系統(tǒng)的一個(gè)或n個(gè)網(wǎng)絡(luò)端口(一般稱為"監(jiān)聽(tīng)"),當(dāng)端口收到信息時(shí),對(duì)信息進(jìn)行處理(符合條件的反饋,否則忽略)

客戶端:通過(guò)網(wǎng)絡(luò)向網(wǎng)絡(luò)地址的指定端口發(fā)送信息,接收反饋的軟件

服務(wù)器-客戶端運(yùn)行方式簡(jiǎn)介

每一個(gè)服務(wù)器端軟件都會(huì)通過(guò)端口與外界連通,當(dāng)它跟一個(gè)客戶端軟件交換信息之后,會(huì)分配一個(gè)臨時(shí)端口(一般是靠后的端口,比如60233)持續(xù)與該客戶端通信——這樣可以避免監(jiān)聽(tīng)的端口出現(xiàn)阻塞,繼續(xù)等待其它客戶端。

另:根據(jù)網(wǎng)絡(luò)底層的TCP/IP協(xié)議,計(jì)算機(jī)共有65535個(gè)端口,其中前1023為保留端口,有公約的用途。但隨著發(fā)展,保留端口已經(jīng)不夠用了,編程時(shí)建議選數(shù)字大的端口,以免發(fā)生端口沖突。


進(jìn)行基于網(wǎng)絡(luò)的編程時(shí)還需要一些輔助軟件,最基本的是發(fā)收網(wǎng)絡(luò)信息的小軟件,比如Windows平臺(tái)的Telnet客戶端(可能需要手動(dòng)在??里激活)和Linux平臺(tái)的nc


下面是TCL/TK服務(wù)器端的例子,該代碼實(shí)現(xiàn)監(jiān)聽(tīng)6060端口,并向每一個(gè)連接的客戶端發(fā)送固定的消息 "+OK 象喻@BiliBili Server Ready" 同時(shí)把來(lái)訪客戶端的信息在本地顯示出來(lái):

注意:為便于理解使用了中文,如果運(yùn)行報(bào)錯(cuò)請(qǐng)換成英文

運(yùn)行后會(huì)先顯示"Server Run",用Telnet連接127.0.0.1 6060之后:

此時(shí)Telnet窗口顯示的是:

以上是服務(wù)器端簡(jiǎn)單的例子。

下面稍微復(fù)雜點(diǎn),持續(xù)顯示接收到的客戶端信息:

注意:Windows上的Telnet在輸入字符時(shí)即會(huì)向服務(wù)器端發(fā)送信息(即一個(gè)字符一個(gè)字符發(fā)送),但是回車Enter后才算一行,所以在TCL的服務(wù)器端會(huì)顯示出很多空行。并且Telnet的c退出指令跟直接關(guān)閉窗口一樣,并非正常的關(guān)閉通道。如果在"通道處理"的代碼中,有?puts $sock "象喻@BiliBili"?這樣的語(yǔ)句,最好放在 catch 命令里,否則在面對(duì)Telnet這樣的客戶端時(shí)會(huì)導(dǎo)致異常斷開(kāi)錯(cuò)誤(會(huì)報(bào)錯(cuò),但不會(huì)導(dǎo)致服務(wù)器程序終止執(zhí)行)。

服務(wù)器端
Telnet客戶端

這個(gè)服務(wù)器程序除了用Telnet測(cè)試外,還可以用瀏覽器測(cè)試,雖然瀏覽器接收不到http消息會(huì)報(bào)錯(cuò),但在服務(wù)器端是可以正常顯示瀏覽器發(fā)送過(guò)來(lái)的http協(xié)議請(qǐng)求的:

客戶端代碼,也是最簡(jiǎn)單的例子:

其它代碼跟服務(wù)器端類似

TCL/TK網(wǎng)絡(luò)編程:服務(wù)器端、客戶端的極簡(jiǎn)例子的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
武乡县| 焦作市| 庆城县| 武山县| 新昌县| 杭州市| 科尔| 黑河市| 无锡市| 桐梓县| 浠水县| 洛隆县| 嘉义市| 荆门市| 大英县| 苏尼特左旗| 庄河市| 平乐县| 湟中县| 太仆寺旗| 登封市| 谷城县| 临邑县| 利川市| 桃江县| 来安县| 邵阳市| 洪湖市| 马鞍山市| 五台县| 盐山县| 托里县| 精河县| 满城县| 岢岚县| 榆林市| 黄冈市| 金阳县| 东山县| 南安市| 博客|