實驗七:Linux Socket編程 實驗報告.doc

實驗七:Linux Socket編程 實驗報告.doc

ID:56799096

大?。?56.50 KB

頁數(shù):15頁

時間:2020-07-12

實驗七:Linux Socket編程 實驗報告.doc_第1頁
實驗七:Linux Socket編程 實驗報告.doc_第2頁
實驗七:Linux Socket編程 實驗報告.doc_第3頁
實驗七:Linux Socket編程 實驗報告.doc_第4頁
實驗七:Linux Socket編程 實驗報告.doc_第5頁
資源描述:

《實驗七:Linux Socket編程 實驗報告.doc》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫

1、《計算機操作系統(tǒng)》實驗報告實驗七:LinuxSocket編程學校:╳╳╳院系:╳╳╳班級:╳╳╳姓名:╳╳╳學號:╳╳╳指導教師:╳╳╳目錄一、實驗題目3二、實驗學時3三、指導老師3四、實驗日期3五、實驗目的3六、實驗原理36.1什么是Socket36.2Socket建立36.3Socket配置46.4連接建立56.5數(shù)據(jù)傳輸66.6結束傳輸7七、實驗步驟及結果77.1編譯服務端(server.c)77.2編譯客戶端(client.c)87.3服務端與客戶端交互8八、報告書寫人8附錄一服務端(s

2、erver.c)9附錄二客戶端(client.c)11實驗七:LinuxSocket編程一、實驗題目LinuxSocket編程二、實驗學時3學時三、指導老師╳╳╳四、實驗日期2018年12月17日星期一五、實驗目的(1)了解socket含義(2)設計socket程序,實現(xiàn)遠程服務器端和客戶端的通信六、實驗原理6.1什么是SocketSocket接口是TCP/IP網絡的API,Socket接口定義了許多函數(shù)或例程,程序員可以用它們來開發(fā)TCP/IP網絡上的應用程序。要學Internet上的TCP/

3、IP網絡編程,必須理解Socket接口。Socket接口設計者最先是將接口放在Unix操作系統(tǒng)里面的。如果了解Unix系統(tǒng)的輸入和輸出的話,就很容易了解Socket了。網絡的Socket數(shù)據(jù)傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似于打開文件的函數(shù)調用Socket(),該函數(shù)返回一個整型的Socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^該Socket實現(xiàn)的。常用的Socket類型有兩種:流式Socket(SOCK_STREAM)和數(shù)據(jù)報式Sock

4、et(SOCK_DGRAM)。流式是一種面向連接的Socket,針對于面向連接的TCP服務應用;數(shù)據(jù)報式Socket是一種無連接的Socket,對應于無連接的UDP服務應用。6.2Socket建立  為了建立Socket,程序可以調用Socket函數(shù),該函數(shù)返回一個類似于文件描述符的句柄。socket函數(shù)原型為:  intsocket(intdomain,inttype,intprotocol);  domain指明所使用的協(xié)議族,通常為PF_INET,表示互聯(lián)網協(xié)議族(TCP/IP協(xié)議族);t

5、ype參數(shù)指定socket的類型:SOCK_STREAM或SOCK_DGRAM,Socket接口還定義了原始Socket(SOCK_RAW),允許程序使用低層協(xié)議;protocol通常賦值"0"。Socket()調用返回一個整型socket描述符,你可以在后面的調用使用它?! ocket描述符是一個指向內部數(shù)據(jù)結構的指針,它指向描述符表入口。調用Socket函數(shù)時,socket執(zhí)行體將建立一個Socket,實際上"建立一個Socket"意味著為一個Socket數(shù)據(jù)結構分配存儲空間。Socket

6、執(zhí)行體為你管理描述符表?! 蓚€網絡程序之間的一個網絡連接包括五種信息:通信協(xié)議、本地協(xié)議地址、本地主機端口、遠端主機地址和遠端協(xié)議端口。Socket數(shù)據(jù)結構中包含這五種信息。6.3Socket配置  通過socket調用返回一個socket描述符后,在使用socket進行網絡傳輸以前,必須配置該socket。面向連接的socket客戶端通過調用Connect函數(shù)在socket數(shù)據(jù)結構中保存本地和遠端信息。無連接socket的客戶端和服務端以及面向連接socket的服務端通過調用bind函數(shù)來配

7、置本地信息。Bind函數(shù)將socket與本機上的一個端口相關聯(lián),隨后你就可以在該端口監(jiān)聽服務請求。Bind函數(shù)原型為:  intbind(intsockfd,structsockaddr*my_addr,intaddrlen);  Sockfd是調用socket函數(shù)返回的socket描述符,my_addr是一個指向包含有本機IP地址及端口號等信息的sockaddr類型的指針;addrlen常被設置為sizeof(structsockaddr)?! tructsockaddr結構類型是用來保存s

8、ocket信息的:  structsockaddr{  unsignedshortsa_family;/*地址族,AF_xxx*/charsa_data[14];/*14字節(jié)的協(xié)議地址*/};  sa_family一般為AF_INET,代表Internet(TCP/IP)地址族;sa_data則包含該socket的IP地址和端口號?! ×硗膺€有一種結構類型:  structsockaddr_in{  shortintsin_family;/*地址族*/  unsignedshortintsin_

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。