柚子快報邀請碼778899分享:Java網(wǎng)絡(luò)
柚子快報邀請碼778899分享:Java網(wǎng)絡(luò)
?? ?java.net包下提供了一系列的類和接口,用來實現(xiàn)網(wǎng)絡(luò)通信。
一、InetAddress類
1.獲取本機(jī)InetAddress對象 getLoaclHost
2.根據(jù)指定主機(jī)名/域名獲取ip地址對象 getByName
3.獲取InetAddress對象的主機(jī)名 getHostName
4.獲取InetAddress對象的地址 getHostAddress
二、Socket類
1.通信兩端都要有Socket,這是弊端。
2.網(wǎng)絡(luò)通信就是Socket之間的通信
3.Socket允許程序把網(wǎng)絡(luò)連接當(dāng)作一個流,數(shù)據(jù)在兩個Socket之間通過IO傳輸。
4.一般主動發(fā)起通信的應(yīng)用程序?qū)儆诳蛻舳?,等待通信請求的為服?wù)器。
三、TCP編程
服務(wù)器套接字——ServerSocket類:
?? ?這個類實現(xiàn)了服務(wù)器套接字。 服務(wù)器套接字等待通過網(wǎng)絡(luò)進(jìn)入的請求。 它根據(jù)該請求執(zhí)行一些操作,然后可能將結(jié)果返回給請求者。
?? ?服務(wù)器套接字的實際工作由SocketImpl類的實例執(zhí)行。 應(yīng)用程序可以更改創(chuàng)建套接字實現(xiàn)的套接字工廠,以配置自己創(chuàng)建適合本地防火墻的套接字。
構(gòu)造方法:
常用方法:
? ? 使用accept()方法,當(dāng)有客戶端進(jìn)行連接時,將返回一個Socket對象。
客戶端套接字——Socket:
?? ?該類實現(xiàn)客戶端套接字(也稱為“套接字”)。 套接字是兩臺機(jī)器之間通訊的端點(diǎn)。
?? ?套接字的實際工作由SocketImpl類的實例執(zhí)行。 應(yīng)用程序通過更改創(chuàng)建套接字實現(xiàn)的套接字工廠,可以配置自己創(chuàng)建適合本地防火墻的套接字。
構(gòu)造方法:
方法:
注意:
? ? 1.使用IO流傳輸數(shù)據(jù)時,使用IO流對象的close()方法同時會關(guān)閉socket,用socket.shutdown...put()即可。
?? ?2.當(dāng)客戶端連接服務(wù)器之后,服務(wù)器也會隨機(jī)分配一個端口,使用客戶端的這個端口連接客戶端。
netstat指令:
1.netstat -an 可以查看當(dāng)前主機(jī)網(wǎng)絡(luò)情況,包括端口監(jiān)聽情況和網(wǎng)絡(luò)連接情況。
2.netstat -an | more 可以分頁顯示
3.要求在dos控制臺下執(zhí)行。
四、UDP網(wǎng)絡(luò)編程
1.類DatagramSocket 和 DatagramPacket實現(xiàn)了基于UDP協(xié)議網(wǎng)絡(luò)程序。
2.UDP數(shù)據(jù)報通過套接字DatagramSocket發(fā)送和接收,系統(tǒng)不保證UDP數(shù)據(jù)報一定能安全到達(dá)目的地。
3.DatagramPacket對象封裝了UDP數(shù)據(jù)報,在數(shù)據(jù)報中包含了發(fā)送端以及接收端的IP地址和端口號。
4.UDP協(xié)議中每個數(shù)據(jù)報都給出了完整的地址信息,因此無需建立發(fā)送方和接收方的連接。
5.接收數(shù)據(jù)和發(fā)送數(shù)據(jù)都是通過將數(shù)據(jù)封裝到DatagramSocket對象完成的。
基本流程:
1.建立發(fā)送端,接收端
2.發(fā)送數(shù)據(jù)前,建立數(shù)據(jù)報DatagramPacket對象
3.調(diào)用DatagramSocket的發(fā)送、接收方法
4.關(guān)閉DatagramSocket
即DatagramSocket對象用來發(fā)送數(shù)據(jù)(DatagramPacket對象)。
DatagramPocket:
?? ?該類表示數(shù)據(jù)報包。
?? ?數(shù)據(jù)報包用于實現(xiàn)無連接分組傳送服務(wù)。 僅基于該數(shù)據(jù)包中包含的信息,每個消息從一臺機(jī)器路由到另一臺機(jī)器。 從一臺機(jī)器發(fā)送到另一臺機(jī)器的多個分組可能會有不同的路由,并且可能以任何順序到達(dá)。 包傳送不能保證.
構(gòu)造方法:
方法:
DatagramSocket:
? ??
此類表示用于發(fā)送和接收數(shù)據(jù)報數(shù)據(jù)包的套接字。
?? ?數(shù)據(jù)報套接字是分組傳送服務(wù)的發(fā)送或接收點(diǎn)。 在數(shù)據(jù)報套接字上發(fā)送或接收的每個數(shù)據(jù)包都被單獨(dú)尋址和路由。 從一個機(jī)器發(fā)送到另一個機(jī)器的多個分組可以不同地路由,并且可以以任何順序到達(dá)。
構(gòu)造方法:
方法:
柚子快報邀請碼778899分享:Java網(wǎng)絡(luò)
相關(guān)閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。