版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、LINUX環(huán)境高級編程中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院 朱靜朱靜中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院進程進程SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET概述概述SOCKET概述概述中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET概述概述中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET概述概述中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院服務器端:服務器端:SOCKET概述概述中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院
2、SOCKET概述概述中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET概述概述中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院對新協(xié)議的支持SOCKET概述概述中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地
3、質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院網絡字節(jié)順序網絡字節(jié)順序網絡字節(jié)順序網絡字節(jié)順序SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院v 接受客戶請求接受客戶請求accept() 服務器服務器int accept(int fd,st
4、ruct sockaddr* address,int* addressLen) 監(jiān)聽fd所指向的服務器的命名套接字,一直等到收到一個客戶端的連接請求。 收到請求后,accept()創(chuàng)建一個未命名套接字,其屬性和原來的服務器命名套接字相同,把該未命名套接字連接到客戶端套接字,并返回一個新的文件描述符,用于和客戶端的通信。 原來的服務器命名套接字繼續(xù)接受其他客戶端的連接請求。 address結構中填寫的是客戶端的地址,通常只和Internet連接合用。addressLen最初應設為指向一個包含address所指向結構大小的整數(shù),當連接建立后,該整數(shù)被設為所得到的address的實際字節(jié)大小。 調用
5、成功返回一個新的文件描述符,用于和客戶的通信;失敗返回-1。 SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院服務器命名套接字服務器命名套接字服務器命名套接字未命名套接字客戶端客戶端未命名套接字SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院說明:socket套接字通信是雙向的SOCKET通信通
6、信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院要實現(xiàn)遠程網絡通信,客戶端需要了解服務器的要實現(xiàn)遠程網絡通信,客戶端需要了解服務器的IP地址和端口號。地址和端口號。SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院/etc/servicesSOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院hostent結構中包含了主機關聯(lián)的IP地址SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學
7、(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院v打開所需端口方法一:方法一:1,安裝 xinetd#yum install xinetd2,修改 /etc/xinetd.d目錄中daytime文件中 disable項 disable = no3,重啟 xinetd 服務#service xinetd restart 中國地質大學(武漢)計算機學院中國地質大
8、學(武漢)計算機學院SOCKET通信通信v打開所需端口方法二:方法二:/sbin/iptables -I INPUT -p tcp -dport 13 -j ACCEPT #開啟端口/etc/rc.d/init.d/iptables save #保存配置 /etc/rc.d/init.d/iptables restart #重啟服務 /etc/init.d/iptables status 或者 iptables L n #查看端口是否開放中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學
9、院 協(xié)議名如果hints結構為空指針,其成員值被置為默認值AI_PASSIVE,AI_CANONNAME,AI_NUMERICHOST /AF_INET,AF_INET6 /SOCK_STREAM,SOCK_DGRAM /PPROTO_UDP, IPPROTO_TCP,etc /ai_addr的長度SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院對于對于getaddrinfo函數(shù)調用的主要參數(shù)值指定:函數(shù)調用的主要參數(shù)值指定:1 hostname和和service。TCP或或UDP客戶進程客戶進程調用getaddrinfo需要設置的主要參數(shù)。該調用返回后,TCP
10、客戶通常在一個循環(huán)中對每個返回的IP地址逐一調用socket和connect,直到一個連接成功,或者所有的地址嘗試完畢為止。UDP客戶由getaddrinfo填入的套接口地址結構用于調用sendto或connect。如果客戶能夠判斷第一個地址不工作,可以嘗試其余的地址。如果客戶清楚自己只處理一種類型的套接口,應把hints結構的ai_socktype成員設置成SOCK_STREAM或者SOCK_DGRAM.SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院 2 典型的典型的服務器進程服務器進程只指定只指定service而不指定而不指定hostname,同時在,同時
11、在hints結構中指定結構中指定AI_PASSIVE標志標志(表示套接字接受任何地址的連接)。(表示套接字接受任何地址的連接)。返回的套接字地址結構中應含有一個值為INADDR_ANY(IPv4)或者IN6ADDR_ANY_INIT(IPv6)的IP地址。TCP服務器隨后調用socket、bind和listen。如果服務器清楚自己只處理一種套接字,那么應該把hints結構的ai_socktype成員設置成SOCK_STREAM或者SOCK_DGRAM。這樣可以避免返回多個結構,其中可能包含錯誤的ai_socktype值。SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算
12、機學院3 服務器程序的另一種設計方法是使用服務器程序的另一種設計方法是使用select或者或者poll函數(shù)讓服務器進程處理多個套接字。函數(shù)讓服務器進程處理多個套接字。這種情形下,服務器將遍歷由getaddrinfo返回的整個addrinfo結構鏈表,并為每個addrinfo創(chuàng)建一個套接字,再使用select或者poll 函數(shù)SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院關于關于getaddrinfo返回值的說明:返回值的說明: 1 如果與hostname參數(shù)關聯(lián)的地址有多個,那么適用于所請求地址簇的每個地址都返回一個對應的結構。 2 如果service參數(shù)指定
13、的服務支持多個套接字類型,那么每個套接字類型都可能返回一個對應的結構,具體取決于hints結構的ai_socktype成員。addrinfo結構中返回的信息可直接作為socket、connect、sendto、bind等系統(tǒng)調用的參數(shù)如果在hints的ai_flags設置了AI_CANONNAME標志,那么本函數(shù)返回的第一個addrinfo結構的ai_canonname成員指向所查找的主機的規(guī)范名。SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院例: getaddrinfo系統(tǒng)調用 struct addrinfo hints, *res; memset(hint
14、s,0, sizeof(hints) ); hints.ai_flags = AI_CANONNAME; hints.ai_family = AF_INET; getaddrinfo( freebsd4, domain, &hints, &res ) SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院#includevoid freeaddrinfo( struct addrinfo *ai );ai參數(shù)應指向由參數(shù)應指向由getaddrinfo返回的第一個返回的第一個addrinfo結構。結構。這個鏈表中的所有結構以及由它們所指向的任何動態(tài)存儲空間這個鏈表中的所有結構以及由它們所指向的任何動態(tài)存儲空間(譬如套接字地址結構和規(guī)范主機名)都被釋放掉。(譬如套接字地址結構和規(guī)范主機名)都被釋放掉。SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大學(武漢)計算機學院中國地質大學(武漢)計算機學院SOCKET通信通信中國地質大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年違約借款合同違約責任追究辦法3篇
- 2025年度個人房屋買賣價格調整及支付合同4篇
- 2025年度企業(yè)應收賬款債權轉讓與風險控制協(xié)議書3篇
- 2025年度房地產樣板間設計與施工合同范本4篇
- 2025年度電子商務個人勞務派遣合作協(xié)議書4篇
- 工廠租地合同(2篇)
- 二零二五年度民政局離婚協(xié)議書模板法律咨詢附加服務合同4篇
- 2025年度銷售顧問市場調研聘用合同2篇
- 2024西部縣域經濟百強研究
- STEM教育實踐講解模板
- 2024年財政部會計法律法規(guī)答題活動題目及答案一
- GB/T 33130-2024高標準農田建設評價規(guī)范
- 供應商物料質量問題賠償協(xié)議(中文)
- 變頻電機使用說明書(完整版)
- 第七章_材料顯微斷口分析
- 口語交際教學設計的思路及策略-教育文檔
- 公共廁所(預算書)
- JSA作業(yè)安全分析表格
- 《豬肉分割及介紹》PPT課件.ppt
- 工程款欠條(模板)
- 幕墻工程施工重點、難點分析及應對措施
評論
0/150
提交評論