成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java Socket編程:基本的術語和概念

開發 后端
計算機程序能夠相互聯網,相互通訊,這使一切都成為可能,這也是當今互聯網存在的基礎。那么程序是如何通過網絡相互通信的呢?這就是我記錄這系列的筆記的原因。

計算機程序能夠相互聯網,相互通訊,這使一切都成為可能,這也是當今互聯網存在的基礎。那么程序是如何通過網絡相互通信的呢?這就是我記錄這系列的筆記的原因。Java語言從一開始就是為了互聯網而設計的,它為實現程序的相互通信提供了許多有用API,這類應用編程接口被稱為套接字(Socket)。在開始學習Java Socket之前我們需要先來了解一下基本的術語和概念。

1.計算機網絡

計算機網絡由一組通過通信信道(Communication channel)相互連接的機器組成。這些機器被稱為:主機(hosts)和路由器(routers):

  • 通信信道 —— 是將字節序列從一個主機傳輸到另一個主機的一種手段(有線、無線(WiFi)等方式)。
  • 主機 —— 作用是運行程序的計算機。
  • 路由器 —— 作用是將信息從一個通信信道傳遞或轉發到另一個通信信道。

TCP/IP網絡通信流程圖:

2.分組報文

  • 分組報文 —— 在網絡環境中由程序創建和解釋的字節序列。

3.協議

協議相當于相互通信的一種約定,協議規定了分組報文的交換方式和它們包含意義。

互聯網所使用的協議是 TCP/IP 協議,TCP/IP 協議族主要包括:

  • IP 協議(Internet Protocol,互聯網協議)
  • TCP 協議(Transmission Control Protocol,傳輸控制協議)
  • UDP 協議(User Datagram Protocol,用戶數據報協議)

IP協議

  • IP 協議 —— 是TCP/IP協議中唯一屬于網絡層的協議。將數據從一臺主機傳輸到另一臺主機。
  • IP 協議 —— 提供了一種數據服務:每組分組報文都有網絡獨立處理和分發,類似于信件或包裹通過郵政系統發送一樣。
  • IP 協議 —— 是一個"盡力而為"(best-effort)的協議:它試圖分發每一個分組報文,在網絡傳輸過程中,偶爾也會發生丟失報文是報文順序打亂,或者重復發送報文的情況。  

在IP協議層之上是傳輸層(transport layer),它提供了兩種可選的協議:TCP協議和UDP協議,兩種協議都建立在IP層所提供的服務基礎上,二者也被稱為"端到端傳輸協議(end-to-end transport protocol)"根據應用程序協議(Application protocol)的不同需求,使用了不同的方式傳輸數據。二者都有一個共同的功能:尋址。TCP協議和UDP協議使用的地址叫做端口號(port number),是用來區分同一主機不同應用程序的。

TCP 協議

TCP協議能夠檢測和恢復IP層提供的主機到主機的信道中可能發生的報文丟失、重復以及其他錯誤。TCP協議是一種面向連接(connection oriented)協議:在使用它進行通信之前,兩個應用程序之間首先要建立一個TCP連接,這涉及兩臺相互通信的主機的TCP部件間完成的握手消息(handshake message)的交換。

UDP 協議

UDP協議并不嘗試對IP層產生的錯誤進行修復,它僅僅簡單拓展了IP協議,"盡力而為"的數據服務,使它能夠在應用程序之間工作,而不是在主機之間工作。使用UDP協議的應用程序需要對處理報文丟失、順序混亂等問題做好準備。

4.關于地址

在TCP/IP協議中,有兩部分信息用來定位一個指定的程序:互聯網地址(Internet address)和端口號(port number,范圍1-65535)。前者由IP協議使用,后者由傳輸協議(TCP/UDP)對其進行解析。

互聯網地址有二進制數字組成,有兩種形式:IPv4(32位)和IPv6(128位)。為了方便使用,兩個版本的IP協議有不同的表示方法:

  • IPv4地址被表示為一組為4個十進制數,每兩個數之間用圓點隔開,這種表示方法叫做:點分形式(dotted-quad)。
  • IPv6地址的16個字節由幾組16進制的數字表示,這些十六進制數之間有分號隔開,每組數字分別代表了地址中的兩個字節。

回環地址

回環地址(loopback address)是被分配的一個特殊的回環接口(loopback interface),回環接口是一種虛擬設備,它的功能只是簡單的把發送給它的報文立即返回給發送者。如IPv4中的:127.0.0.1

5.域名系統(Domain Name System,DNS)和本地配置數據庫

DNS是一種分布式數據庫,它將向www.baidu.com這樣的域名映射到真實的互聯網地址和其他信息上。DNS協議允許連接到互聯網的主機通過TCP或者UDP協議從DNS數據庫獲取信息。

本地配置數據庫通常是一種與具體操作系統相關的機制,用來實現本地與互聯網地址的映射。  

6.客戶端和服務器

客戶端(client)和服務器(server)這兩個術語分別代表了兩種角色:

  • 客戶端是通信的發起者,而服務器程序則被動等待客戶端發起通信,并對其作出響應。
  • 客戶端和服務器組成了應用程序。

7.什么是Socket(套接字)

Socket(套接字)是一種抽象層,應用程序通過它來發送和接受數據,就像應用程序打開一個文件句柄,將數據讀寫到穩定的存儲器上一樣。

在TCP/IP協議族中的主要Socket類型為:

  • 流套接字(stream socket):傳輸層使用TCP協議,提供了一個可信賴的字節流服務
  • 數據報套接字(datagram socket):傳輸層使用UDP協議,提供了一個"盡力而為"的數據報服務,最長一次可以發送65500個字節的數據。

 

參考資料:《TCP/IP Socket in Java》

原文鏈接:http://www.cnblogs.com/IPrograming

【編輯推薦】

  1. Java集合類ArrayList循環中刪除特定元素
  2. Java集合框架總結:Set接口的使用
  3. Java的位移運算巧方法
  4. Java7的一個新類JLayer:裝飾的Swing組件
  5. 關于Java中內存溢出的解決辦法
責任編輯:林師授 來源: 晴天豬的博客
相關推薦

2019-06-19 09:00:00

GitLinux開源

2012-03-19 11:41:30

JavaSocket

2013-05-27 14:05:16

2009-08-21 14:47:39

C#網絡編程

2009-06-11 10:00:05

Java Socket

2017-05-02 14:45:11

深度學習機器學習人工神經網絡

2010-06-08 16:11:10

SPI總線協議

2010-04-19 10:08:46

Oracle視圖

2017-07-10 16:40:09

2010-06-21 18:04:08

2009-09-07 04:29:28

SDI MDI

2016-10-31 20:46:22

函數式編程Javascript

2010-07-20 09:05:08

Perl類

2009-08-18 10:34:31

Java入門基本概念

2023-06-05 07:56:10

線程分配處理器

2013-09-22 11:03:20

SocketSocket編程

2015-09-08 10:06:18

JavaSocket編程通信

2010-03-19 16:51:53

Java Socket

2015-03-10 13:43:00

JavaSocket編程編程

2012-04-20 13:27:17

NFC
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久 | 最新黄色在线观看 | 97国产精品| 国产在线观看一区二区 | 亚洲综合中文字幕在线观看 | 97av视频在线 | 免费日韩av网站 | 性视频网| 日韩欧美国产精品 | 五月天激情综合网 | 国产剧情一区二区三区 | 亚洲国产精品成人无久久精品 | 伊人久久综合影院 | 日本不卡一区 | 超碰美女在线 | 亚洲精品字幕 | 一区二区三区国产视频 | 粉嫩一区二区三区四区公司1 | 黑人巨大精品 | 午夜视频在线免费观看 | 岛国二区 | 午夜av成人| 日本天堂视频在线观看 | 91一区二区三区在线观看 | 国产精品精品久久久 | 羞羞视频网站免费观看 | 成人精品一区二区三区 | 日韩一区二区视频 | 中文字幕日韩一区 | 91视频免费在观看 | 亚洲成人精品一区二区 | 日韩在线一区二区三区 | 国产日韩精品一区二区三区 | 色视频在线播放 | 国产乱码精品一区二三赶尸艳谈 | 免费国产成人av | 在线免费激情视频 | 亚洲精品乱码久久久久久久久久 | 亚洲精品天堂 | av在线一区二区三区 | 99亚洲国产精品 |