日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Socket网络编程笔记

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

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

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

什么是網絡編程?

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

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

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

Socket

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

Socket傳輸原理

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

Socket與tcp

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

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

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

    報文

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

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

    mac地址

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

    UDP中的核心API

    DatagramSocket

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

  • 用于處理報文的類,封裝報文和拆解報文,它是發送實體,也是接收實體
  • DatagramPacket(byte[] buf,int offset,int length,InetAddress address, int port);前三個參數指定buff和buff的使用區間,后兩個參數是目標機器的ip和端口,這兩個參數僅僅在發送時有效,而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要發送的buf數組
  • setAddress(InetAddress address):僅在發送時有效
  • setPort(int port):僅在發送時有效
  • ...
  • UDP單播

    端對端之間的通信

    UDP多播(組播)

    給一組設備發送信息

    UDP廣播

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

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

    總結

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

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