日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Socket网络编程笔记

發(fā)布時間:2025/6/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Socket网络编程笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

網絡、計算機網絡的構成是什么?

網絡: 在計算機領域中,網絡是信息傳輸、接收、共享的虛擬平臺,通過它可以把各個點、面(組織之間)、體(例如公共app)的信息聯(lián)系到一起,從而實現(xiàn)這些資源的共享。 局域網: 多個設備(電腦手機等)都連接到了一個路由器上,就形成了一個局域網,路由器最終通過光纖或者雙絞線連接到廣域網,實現(xiàn)上網。 互聯(lián)網: 無數個局域網、城域網等形成互聯(lián)網

什么是網絡編程?

網絡編程就是對信息的發(fā)送和接收,通過操作相應的api調度計算機的硬件資源,并利用傳輸管道進行數據交流。

七層網絡模型(來自百度)

基礎層:物理層、數據鏈路層、網絡層
傳輸層:TCP-UDP協(xié)議層、socket,網絡編程是建立在傳輸層之上的 高級層:會話層、表示層、應用層

Socket

網絡上的兩個程序通過一個雙向的通信連接實現(xiàn)數據的交換,這個連接的一端稱為一個socket,他是ip地址和端口的結合描述協(xié)議,也是tcp/ip協(xié)議相關api的總稱。用于區(qū)分不同應用程序進程間的網絡通信和連接。

Socket傳輸原理

通過IP地址和端口連接進行網絡通訊

Socket與tcp

  • tcp是面向連接的協(xié)議
  • 通過三次握手建立連接,通訊完成是要拆除連接
  • 由于tcp是面向連接的,所有只能用于端到端的通信,某一時刻只能連接到 某一個端口
  • Socket與udp

  • udp是面向無連接的
  • udp數據包括目的端口號和源端口號的信息
  • 面向無連接,可以進行廣播發(fā)送, 并不局限于端到端。而tcp無法進行廣播通訊
  • C/S模型

    tcp/ip 協(xié)議中,兩個進程間通信的主要模式為C/S模型(client-server) 目的: 協(xié)同網絡中的計算機資源,服務模式、進程間的數據共享(例如網站中訪問redis服務)
    常見的C/S模型:FTP、SMTP、HTTP

    報文

  • 報文段是TCP/IP協(xié)議網絡傳輸過程中,起著路由導航作用的。A進程發(fā)送到數據到B進程,A進程會將原始數據進行報文解析,然后加上對應的字節(jié)頭,然后將字節(jié)頭信息傳遞B進程,B進程將字節(jié)頭解析以后得到報文段,再將報文段傳遞給應用層,應用層再經報文段解析成原始數據
  • 報文段用于查詢各個網絡路由網段,ip地址、交換協(xié)議等ip數據包
  • 報文在傳輸過程中會不斷被封裝成組、包、幀進行傳輸
  • 傳輸協(xié)議

    傳輸協(xié)議就是一種規(guī)定,一種約束.A和B進行通話,就需要A撥號、響鈴、B接聽,要遵循這些操作才能進行通話。

    mac地址

    mac 地址用于標注網絡設備的位置,形如45-45-33-36-00-00 ,對比我們的居民身份證

    UDP中的核心API

    DatagramSocket

  • 用于發(fā)送和udp的類,既是服務器,也是客戶端
  • udp并沒有合并包socket api中 3.DatagramSocket():創(chuàng)建簡單實例,不指定端口和ip,會自動選擇本地可用的端口進行發(fā)送 4.DatagramSocket(int port):創(chuàng)建監(jiān)聽固定端口的實例 5.DatagramSocket(int port,InetAddress localAddress) 6.receive(DatagramPacket d): 接收 7.send(DatagramPacket d): 發(fā)送
  • setSoTimeout(int timeout):設置超時時間,毫秒
  • close()
  • DatagramPacket

  • 用于處理報文的類,封裝報文和拆解報文,它是發(fā)送實體,也是接收實體
  • DatagramPacket(byte[] buf,int offset,int length,InetAddress address, int port);前三個參數指定buff和buff的使用區(qū)間,后兩個參數是目標機器的ip和端口,這兩個參數僅僅在發(fā)送時有效,而DatagramPacket在作為接收實體時使用的是DatagramSocket的ip和端口。
  • DatagramPacket(byte[] buf,int offset,int length,SocketAddress socketaddress),與2類似,SocketAddress相當于InetAddress+port
  • setData(byte[] buf,int offset,int length),可以往DatagramPacket對象中set要發(fā)送的buf數組
  • setAddress(InetAddress address):僅在發(fā)送時有效
  • setPort(int port):僅在發(fā)送時有效
  • ...
  • UDP單播

    端對端之間的通信

    UDP多播(組播)

    給一組設備發(fā)送信息

    UDP廣播

    給當前設備所在的網段的所有設備發(fā)送信息,

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的Socket网络编程笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。