那曲檬骨新材料有限公司

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>Socket網絡基礎編程

Socket網絡基礎編程

2017-10-18 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

  10.2.1 socket概述
  1.socket定義
  在Linux中的網絡編程是通過socket接口來進行的。人們常說的socket是一種特殊的I/O接口,它也是一種文件描述符。socket是一種常用的進程之間通信機制,通過它不僅能實現本地機器上的進程之間的通信,而且通過網絡能夠在不同機器上的進程之間進行通信。
  每一個socket都用一個半相關描述{協議、本地地址、本地端口}來表示;一個完整的套接字則用一個相關描述{協議、本地地址、本地端口、遠程地址、遠程端口}來表示。socket也有一個類似于打開文件的函數調用,該函數返回一個整型的socket描述符,隨后的連接建立、數據傳輸等操作都是通過socket來實現的。
  2.socket類型
  常見的socket有3種類型如下。
  (1)流式socket(SOCK_STREAM)。
  流式套接字提供可靠的、面向連接的通信流;它使用TCP協議,從而保證了數據傳輸的正確性和順序性。
  (2)數據報socket(SOCK_DGRAM)。
  數據報套接字定義了一種無連接的服務,數據通過相互獨立的報文進行傳輸,是無序的,并且不保證是可靠、無差錯的。它使用數據報協議UDP。
  (3)原始socket。
  原始套接字允許對底層協議如IP或ICMP進行直接訪問,它功能強大但使用較為不便,主要用于一些協議的開發。
  10.2.2 地址及順序處理
  1.地址結構相關處理
  (1)數據結構介紹。
  下面首先介紹兩個重要的數據類型:sockaddr和sockaddr_in,這兩個結構類型都是用來保存socket信息的,如下所示:
  struct sockaddr
  {
  unsigned short sa_family; /*地址族*/
  char sa_data[14]; /*14字節的協議地址,包含該socket的IP地址和端口號。*/
  };
  struct sockaddr_in
  {
  short int sa_family; /*地址族*/
  unsigned short int sin_port; /*端口號*/
  struct in_addr sin_addr; /*IP地址*/
  unsigned char sin_zero[8]; /*填充0 以保持與struct sockaddr同樣大小*/
  };
  這兩個數據類型是等效的,可以相互轉化,通常sockaddr_in數據類型使用更為方便。在建立socketadd或sockaddr_in后,就可以對該socket進行適當的操作了。
  (2)結構字段。
  表10.1列出了該結構sa_family字段可選的常見值。
  表10.1
  結構定義頭文件#include 《netinet/in.h》
  sa_familyAF_INET:IPv4協議
  AF_INET6:IPv6協議
  AF_LOCAL:UNIX域協議
  AF_LINK:鏈路地址協議
  AF_KEY:密鑰套接字(socket)
  sockaddr_in其他字段的含義非常清楚,具體的設置涉及其他函數,在后面會有詳細的講解。
  2.數據存儲優先順序
  (1)函數說明。
  計算機數據存儲有兩種字節優先順序:高位字節優先(稱為大端模式)和低位字節優先(稱為小端模式,PC機通常采用小端模式)。Internet上數據以高位字節優先順序在網絡上傳輸,因此在有些情況下,需要對這兩個字節存儲優先順序進行相互轉化。這里用到了4個函數:htons()、ntohs()、htonl()和ntohl()。這4個地址分別實現網絡字節序和主機字節序的轉化,這里的h代表host,n代表network,s代表short,l代表long。通常16位的IP端口號用s代表,而IP地址用l來代表。
  (2)函數格式說明。
  表10.2列出了這4個函數的語法格式。
  表10.2 htons等函數語法要點
  所需頭文件#include 《netinet/in.h》
  函數原型uint16_t htons(unit16_t host16bit)
  uint32_t htonl(unit32_t host32bit)
  uint16_t ntohs(unit16_t net16bit)
  uint32_t ntohs(unit32_t net32bit)
  函數傳入值host16bit:主機字節序的16位數據
  host32bit:主機字節序的32位數據
  net16bit:網絡字節序的16位數據
  net32bit:網絡字節序的32位數據
  函數返回值成功:返回要轉換的字節序
  出錯:-1
  注意調用該函數只是使其得到相應的字節序,用戶不需清楚該系統的主機字節序和網絡字節序是否真正相等。如果是相同不需要轉換的話,該系統的這些函數會定義成空宏。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1AN158 GD32VW553 Wi-Fi開發指南
  2. 1.51MB   |  2次下載  |  免費
  3. 2嵌入式軟件開發符合ISO 26262 功能安全標準
  4. 1.61 MB  |  1次下載  |  免費
  5. 3AN148 GD32VW553射頻硬件開發指南
  6. 2.07MB   |  1次下載  |  免費
  7. 4PZT驅動開關電路
  8. 0.09 MB   |  1次下載  |  免費
  9. 5模擬電路仿真實現
  10. 2.94MB   |  1次下載  |  免費
  11. 6PCB繪制基礎知識
  12. 2.44MB   |  1次下載  |  免費
  13. 7EE-38:ADSP-2181 IDMA端口-周期竊取時序
  14. 75.0KB   |  次下載  |  免費
  15. 8EE-82:使用ADSP-2181 DSP的IO空間對另一個ADSP-2181進行IDMA引導
  16. 86.86KB   |  次下載  |  免費

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  452次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  139次下載  |  1 積分
  5. 3基于STM32單片機智能手環心率計步器體溫顯示設計
  6. 0.10 MB   |  132次下載  |  免費
  7. 4美的電磁爐維修手冊大全
  8. 1.56 MB   |  24次下載  |  5 積分
  9. 5如何正確測試電源的紋波
  10. 0.36 MB   |  19次下載  |  免費
  11. 6感應筆電路圖
  12. 0.06 MB   |  10次下載  |  免費
  13. 7LZC3106G高性能諧振控制器中文手冊
  14. 1.29 MB   |  9次下載  |  1 積分
  15. 8萬用表UT58A原理圖
  16. 0.09 MB   |  9次下載  |  5 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
金百亿百家乐娱乐城| 百家乐龙虎的投注法| 百家乐技巧头头娱乐| 大发888娱乐能借钱| 镶黄旗| 百家乐官网有无规律可循| 渑池县| 电玩百家乐官网的玩法技巧和规则| 百家乐开和几率| 棋牌游戏大全| 百家乐官网只打闲打法| 澳门百家乐娱乐城网址| 大发888娱乐城破解软件| 百家乐官网的路图片| 赌场百家乐破解| 龙虎斗网站| 阿玛尼百家乐官网的玩法技巧和规则 | 大发888坑人么| 新手百家乐官网指点迷津| 菲律宾百家乐娱乐网| 万豪国际| 百家乐官网追号| 百家乐平台| 百家乐官网打大必赢之法| 足球百家乐网上投注| 赌博网站| 百家乐出千技巧| 金宝博娱乐城返水| 最好百家乐官网的玩法技巧和规则| 百家乐下注法| 新全讯| 缅甸百家乐官网赌场| 德州扑克偷鸡| 百家乐官网小揽| 大发888官网亚洲线上| 大发百家乐官网现金| 百家乐图淑何看| 中信娱乐城| 百家乐娱乐城体育| 黑龙江省| 百家乐网上玩法|