最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
贡觉县| 萍乡市| 崇阳县| 顺平县| 伊通| 呼图壁县| 郓城县| 昌宁县| 本溪| 玉环县| 巴林右旗| 文山县| 惠安县| 许昌市| 皮山县| 巴南区| 深泽县| 甘孜县| 调兵山市| 清苑县| 盖州市| 灵山县| 临泉县| 麻江县| 兴义市| 花垣县| 莲花县| 辰溪县| 盐源县| 兴和县| 四平市| 油尖旺区| 凤山县| 乐陵市| 平果县| 金塔县| 台南市| 萝北县| 南江县| 西宁市| 香格里拉县|