1. 程式人生 > 實用技巧 >JavaSE基礎系列之Socket基礎

JavaSE基礎系列之Socket基礎

1.網路模型劃分

OSI(OpenSystemInterconnect),即開放式系統互聯,是ISO(國際標準化組織)組織在1985年研究的網路互連模型。

OSI七層模型和TCP/IP五層模型的劃分如下:

2.TCP協議

傳輸控制協議(TransmissionControlProtocol),是一種面向連線的協議,類似於打電話。建立連線=>進行通訊=>斷開連線在傳輸前採用"三次握手"方式。在通訊的整個過程中全程保持連線,形成資料傳輸通道。保證了資料傳輸的可靠性和有序性。是一種全雙工的位元組流通訊方式,可以進行大資料量的傳輸。傳輸完畢後需要釋放已建立的連線,傳送資料的效率比較低。

3.udp

使用者資料報協議(UserDatagramProtocol),是一種非面向連線的協議,類似於寫信。在通訊的整個過程中不需要保持連線,其實是不需要建立連線。不保證資料傳輸的可靠性和有序性。是一種全雙工的資料報通訊方式,每個資料報的大小限制在64K內。傳送資料完畢後無需釋放資源,開銷小,傳送資料的效率比較高,速度快。

4.ip地址

192.168.1.1-是絕大多數路由器的登入地址,主要配置使用者名稱和密碼以及Mac過濾。IP地址是網際網路中的唯一地址標識,本質上是由32位二進位制組成的整數,叫做IPv4,當然也有128位二進位制組成的整數,叫做IPv6,目前主流的還是IPv4。日常生活中採用點分十進位制表示法來進行IP地址的描述,將每個位元組的二進位制轉化為一個十進位制整數,不同的整數之間採用小數點隔開。如:0x01020304=>1.2.3.4檢視IP地址的方式:Windows系統:在dos視窗中使用ipconfig或ipconfig/all命令即可Unix/linux系統:在終端視窗中使用ifconfig或/sbin/ifconfig命令即可特殊的地址本地迴環地址(hostAddress):127.0.0.1主機名(hostName):localhost

5.埠號

IP地址-可以定位到具體某一臺裝置。埠號-可以定位到該裝置中具體某一個程序。埠號本質上是16位二進位制組成的整數,表示範圍是:0~65535,其中0~1024之間的埠號通常被系統佔用,建議程式設計從1025開始使用。特殊的埠:HTTP:80FTP:21Oracle:1521MySQL:3306Tomcat:8080網路程式設計需要提供:IP地址+埠號,組合在一起叫做網路套接字:Socket

6.udp協議程式設計模型

接收方:(1)建立DatagramSocket型別的物件並提供埠號;(2)建立DatagramPacket型別的物件並提供緩衝區;(3)通過Socket接收資料內容存放到Packet中,呼叫receive方法;(4)關閉Socket;

傳送方:(1)建立DatagramSocket型別的物件;(2)建立DatagramPacket型別的物件並提供接收方的通訊地址;(3)通過Socket將Packet中的資料內容傳送出去,呼叫send方法;