999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux系統(tǒng)教學(xué)中關(guān)于套接字文件的解析

2020-12-14 04:35:10趙宏朱忠政孔東一
軟件導(dǎo)刊 2020年9期

趙宏 朱忠政 孔東一

摘 ?要: 針對Linux系統(tǒng)相關(guān)內(nèi)容教學(xué)中對于套接字文件講述不夠詳細(xì),導(dǎo)致學(xué)生對套接字文件認(rèn)識模糊的問題,基于套接字通信原理,利用實例對比主機(jī)之間和進(jìn)程之間利用套接字通信的差異,說明Linux系統(tǒng)中套接字文件的作用,幫助學(xué)生對套接字文件的深入理解。

關(guān)鍵詞: Linux系統(tǒng);套接字文件;Socket對象;Python

中圖分類號: TP301 ???文獻(xiàn)標(biāo)識碼: A ???DOI:10.3969/j.issn.1003-6970.2020.09.009

本文著錄格式:趙宏,朱忠政,孔東一. Linux系統(tǒng)教學(xué)中關(guān)于套接字文件的解析[J]. 軟件,2020,41(09):3335

【Abstract】: Most university students have the vague knowledge of socket file in Linux learning because the detailed explain about this file is absent in Linux teaching files. Based on the principle of socket communication, the differences between hosts and between processes are compared using examples, and the function of socket file in Linux is explained. Therefore, students will gain an in-depth understanding in socket file.

【Key words】: Linux system; Socket file; Socket object; Python

0 ?引言

Linux系統(tǒng)作為開放源代碼和自由軟件的代表,廣泛應(yīng)用在各行各業(yè),運(yùn)行在各種機(jī)型和硬件平臺上[1-2]。Linux系統(tǒng)符合POSIX(Portable Operating System Interface)標(biāo)準(zhǔn),功能強(qiáng)大,效率高,配置靈活,安全性高,且具有豐富的工具軟件和應(yīng)用軟件,其相關(guān)內(nèi)容在大多數(shù)高校信息類專業(yè)中作為專業(yè)基礎(chǔ)課開設(shè)[3-4],例如《Linux操作系統(tǒng)》、《Linux系統(tǒng)內(nèi)核分析》、《Linux系統(tǒng)程序設(shè)計》等。

在Linux系統(tǒng)相關(guān)內(nèi)容教學(xué)中,Linux系統(tǒng)中的文件類型是基本內(nèi)容,大多數(shù)教科書列舉了Linux中的文件類型,包括普通文件(-)、目錄文件(d)、字符設(shè)備文件(c)、塊設(shè)備文件(b)、符號鏈接文件(l)、命名管道文件(p)和套接字文件(s)等七種文件類型[1,4],對于前五種文件,一般都進(jìn)行詳細(xì)講解,并用實例加以說明。但對于后兩種文件,只是進(jìn)行簡單的描述,沒有實例的說明,導(dǎo)致學(xué)生在學(xué)習(xí)中,對于命名管道文件和套接字文件的認(rèn)識很模糊,不利于對Linux系統(tǒng)的深刻理解。

文獻(xiàn)[5]詳細(xì)介紹了命名管道文件的功能和實際應(yīng)用實例,本文首先介紹主機(jī)間通過套接字通信的機(jī)制和實例,然后討論進(jìn)程間通過套接字通信的方式,并通過實例進(jìn)行詳細(xì)說明,加深學(xué)生對套接字文件的認(rèn)識。

1 ?套接字介紹

網(wǎng)絡(luò)上的主機(jī)之間通過IP地址與端口號進(jìn)行通信,稱為套接字(Socket)通信[6]。TCP/IP協(xié)議簇中應(yīng)用層的HTTP、FTP、DNS等都是通過套接字通信實現(xiàn)的。套接字通信中,提供服務(wù)的一端稱為套接字服務(wù)端,調(diào)用套接字服務(wù)的一端稱為套接字客戶端。套接字服務(wù)端首先用自己的IP地址、指定端口號和連接方式創(chuàng)建服務(wù)并啟動服務(wù),監(jiān)聽來自客戶端的連接請求;套接字客戶端向服務(wù)端發(fā)起連接請求,連接請求被服務(wù)端接受后,雙方就可以進(jìn)行通信。

主機(jī)之間通過套接字進(jìn)行通信時,無論是服務(wù)端還是客戶端,都需要創(chuàng)建socket對象,并設(shè)置family參數(shù)和type參數(shù)。利用Python語言創(chuàng)建socket對象的語句格式如下。

其中,s表示創(chuàng)建的socket對象;socket.socket()表示調(diào)用socket模塊的socket()函數(shù);family參數(shù)如表1所示,表示主機(jī)之間的網(wǎng)絡(luò)連接方式;type參數(shù)如表2所示,表示主機(jī)之間通信時所使用的傳輸協(xié)議。

2 ?主機(jī)之間通過套接字通信實例

本實例中,服務(wù)端將來自客戶端的字符串中的字母轉(zhuǎn)換為大寫的服務(wù)。

程序第3行引入socket模塊。第4行構(gòu)造socket對象s,family參數(shù)為socket.AF_INET,表示主機(jī)之間使用IPv4地址通信,type參數(shù)為socket.SOCK_ STREAM,表示使用TCP傳輸協(xié)議。第5行調(diào)用函數(shù)bind()將對象s綁定到元組('192.168.3.13', 8088)表示的地址上,其中'192.168.3.13'為服務(wù)端IP地址,8088為端口號。第6行調(diào)用函數(shù)listen()開始監(jiān)聽來自客戶端的連接,參數(shù)為1表示只接受1個連接。第8行調(diào)用函數(shù)accept()接受一個來自客戶端的連接,返回元組(conn,addr),其中,conn也是一個socket對象,用來與客戶端通信,addr為元組變量,保存客戶端的IP地址和端口號。第11行至18行的循環(huán)使用conn通過函數(shù)recv()和send()與客戶端通信,recv()函數(shù)使用參數(shù)1024,表示1次最多接收1024字節(jié)數(shù)據(jù)。由于通信雙方交換bytes字節(jié)流數(shù)據(jù),因此,第13行利用str()函數(shù)將bytes字節(jié)流數(shù)據(jù)轉(zhuǎn)換為字符串。第15行調(diào)用函數(shù)upper()將字符串中小寫字母轉(zhuǎn)換為大寫字母。第16行調(diào)用函數(shù)send()發(fā)送數(shù)據(jù)之前,利用函數(shù)encode()將字符串轉(zhuǎn)換為bytes字節(jié)流后進(jìn)行發(fā)送。第17行判斷接收到的來自客戶端的字符串是否為結(jié)束標(biāo)志“.”,若收到結(jié)束標(biāo)志則利用break語句退出循環(huán)。第19行調(diào)用函數(shù)close()斷開連接,第20行調(diào)用函數(shù)close()釋放對象s。

4 ?結(jié)束語

套接字文件是Linux系統(tǒng)的七種文件之一,也是進(jìn)程之間通信的一種手段,在Linux系統(tǒng)中具有重要作用。本文通過對比主機(jī)之間和進(jìn)程之間通過套接字通信的不同,說明Linux系統(tǒng)中套接字文件的作用,幫助學(xué)生深入理解套接字文件。

參考文獻(xiàn)

[1]鳥哥. 鳥哥的Linux私房菜基礎(chǔ)學(xué)習(xí)篇(第四版)[M]. 北京: 人民郵電出版社, 2018, 10.

[2]Machtelt Garrels. Introduction to Linux[EB/OL]. (2010-05- 12) [2019-09-27]. http://tille.garrels.be/training/tldp/.

[3]燕彩蓉, 朱黎華, 劉瑜琪, 等. 新工科背景下Linux系統(tǒng)課程教學(xué)研究[J]. 計算機(jī)教育, 2019(6): 152-156.

[4]吳淑泉. 高校“Linux操作系統(tǒng)”課程教學(xué)研究與探索[J]. 教育理論與實踐, 2017, 37(33): 57-58.

[5]趙宏, 朱忠政, 常兆斌. Linux系統(tǒng)教學(xué)中關(guān)于命名管道文件的解析[J]. 軟件, 2020, 41(02): 108-110.

[6]趙宏, 包廣斌, 馬棟林. Python網(wǎng)絡(luò)編程(Linux)[M]. 北京: 清華大學(xué)出版社, 2018, 10.

主站蜘蛛池模板: 中文字幕天无码久久精品视频免费| 国产成人91精品| 亚洲无码视频一区二区三区| 精品天海翼一区二区| 亚洲国产91人成在线| 国产精品浪潮Av| 亚洲天堂视频网站| 伦伦影院精品一区| 91av成人日本不卡三区| 婷婷五月在线视频| 精品无码国产一区二区三区AV| 女人18一级毛片免费观看| 91无码人妻精品一区二区蜜桃| 国产熟女一级毛片| 国产在线观看一区二区三区| 一级看片免费视频| 香蕉蕉亚亚洲aav综合| 亚洲午夜综合网| 久久精品无码国产一区二区三区| 四虎在线观看视频高清无码 | 一级一级一片免费| 国产丝袜丝视频在线观看| 色爽网免费视频| 色偷偷男人的天堂亚洲av| 综合社区亚洲熟妇p| 亚洲性影院| 国产精品视频猛进猛出| www.狠狠| 97国内精品久久久久不卡| www.狠狠| 精品一区二区三区四区五区| 97精品久久久大香线焦| 91免费观看视频| 欧美成人精品一级在线观看| 人妻中文字幕无码久久一区| 好紧太爽了视频免费无码| 国产美女一级毛片| 91系列在线观看| 制服丝袜无码每日更新| 国产91蝌蚪窝| 2020精品极品国产色在线观看 | 亚洲黄色视频在线观看一区| 国产在线拍偷自揄观看视频网站| 国产网站免费看| 美女一区二区在线观看| 国产第三区| 狠狠ⅴ日韩v欧美v天堂| 国产成人夜色91| 久久精品女人天堂aaa| 久久久久久久97| 高清不卡毛片| 强乱中文字幕在线播放不卡| 欧美日韩一区二区三区在线视频| 国产成人久久综合一区| 亚洲成人精品久久| 国产成在线观看免费视频| 日韩福利在线视频| 91福利免费| 亚洲国产理论片在线播放| 中文无码日韩精品| 亚洲区视频在线观看| 一级福利视频| 欧美激情第一欧美在线| 天天综合色网| 伊人大杳蕉中文无码| 日本不卡在线播放| 日本免费精品| 欧美日韩福利| 精品国产自在在线在线观看| 九色综合视频网| 欧美一区二区三区国产精品| 99热这里只有精品国产99| 国产偷倩视频| 色婷婷电影网| 久久精品女人天堂aaa| 国产一区二区丝袜高跟鞋| 精品视频第一页| 亚洲有无码中文网| 伊人激情久久综合中文字幕| 无码精油按摩潮喷在线播放 | 亚洲精品久综合蜜| 国产二级毛片|