一.網絡程序設計基礎
1.網絡協議
????????網絡協議規定了計算機之間連接的物理、機械(網線與網卡的連接規定)、電氣(有效的電平范圍)等特征,計算機之間的相互尋址規則,數據發送沖突的解決方式,長數據如何分段傳送與接收等內容.就像不同的國家有不同的法律一樣,目前網絡協議也有多種。
TCP與UDP 協議
????????在 TCP/IP 協議棧中,有兩個高級協議是網絡應用程序編寫者應該了解的,即傳輸控制協議Transmission Control Protocol,TCP) 與用戶數據報協議 (User Datagram Protocol,UDP)。TCP 協議是一種以固接連線為基礎的協議,它提供兩臺計算機間可靠的數據傳送。TCP 可以保證數據從一端送至連接的另一端時,能夠確實送達,而且抵達的數據的排列順序和送出時的順序相同。
2.端口與套接字
????????一般而言,一臺計算機只有單一的連到網絡的物理連接(Physical Connection),所有的數據都通過此連接對內、對外送達特定的計算機,這就是端口。網絡程序設計中的端口(port)并非真實的物理存在,而是一個假想的連接裝置。端口被規定為一個在0~65535 的整數。HTTP 服務一般使用80端口,FTP 服務使用 21端口。假如一臺計算機提供了 HTTP、FTP 等多種服務,那么客戶機會通過不同的端口來確定連接到服務器的哪項服務上,如圖所示。
二.TCP協議
????????TCP 網絡程序設計是指利用 Socket 類編寫通信程序。利用TCP 協議進行通信的兩個應用程序是有主次之分的,一個稱為服務器程序,另一個稱為客戶機程序,兩者的功能和編寫方法大不一樣
1.InetAddress類
????????java.net 包中的 InetAddress 類是與 IP 地址相關的類,利用該類可以獲取 IP 地址、主機地址等信息
例1.
2.ServeSocket類
????????java.net 包中的 ServerSocket 類用于表示服務器套接字,其主要功能是等待來自網絡上的“請求”它可通過指定的端口來等待連接的套接字。服務器套接字一次可以與一個套接字連接。如果多臺客戶機同時提出連接請求,服務器套接字會將請求連接的客戶機存入列隊中,然后從中取出一個套接字,與服務器新建的套接字連接起來。若請求連接數大于最大容納數,則多出的連接請求被拒絕。隊列的默認大小是 50。
3.TCP網絡程序設計
????????明白了 TCP 程序工作的過程,就可以編寫 TCP 服務器程序了。在網絡編程中,如果只要求客戶機向服務器發送消息,不要求服務器向客戶機發送消息,稱為單向通信。客戶機套接字和服務器套接字連接成功后,客戶機通過輸出流發送數據,服務器則通過輸入流接收數據。下面是簡單的單向通信的實例
例2.
三.UDP協議
基于UDP 通信的基本模式如下:
將數據打包 (稱為數據包),然后將數據包發往目的地。
接收別人發來的數據包,然后查看數據包。
發送數據包的步驟如下:
(1)使用 DatagramSocket0創建一個數據包套接字。
(2)?使用 DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)創建要發送的數據包。
(3)使用 DatagramSocket 類的 send()方法發送數據包。
接收數據包的步驟如下:
(1)使用 DatagramSocket(int port)創建數據包套接字,綁定到指定的端口。
(2)使用 DatagramPacket(byte[] buf,int length)創建字節數組來接收數據包
(3)?使用 DatagramPacket 類的 receive()方法接收 UDP 包。
1.DatagramPacket類
????????javanet 包的 DatagramPacket 類用來表示數據包。DatagramPacket 類的構造方法如下:
DatagramPacket(byte[] buf, int length)DatagramPacket(byte[] buf, int length, InetAddress address, int port)
2.DatagramSocket類
????????java.net 包中的 DatagramSocket 類用于表示發送和接收數據包的套接字。該類的構造方法如下:
DatagramSocket()DatagramSocket(int port)DatagramSocket(int port, InetAddress addr)
3.UDP網絡程序設計
????????根據前面所講的網絡編程的基本知識以及 UDP 網絡編程的特點,下面創建一個廣播數據報程序廣播數據報是一項較新的技術,其原理類似于電臺廣播。廣播電臺需要在指定的波段和頻率上廣播息,收聽者也要將收音機調到指定的波段、頻率,才可以收聽廣播內容。
例3.