網絡編程是指編寫運行在多個設備(計算機)的程序,這些設備都經過網絡鏈接起來。
網絡編程是指編寫運行在多個設備(計算機)的程序,這些設備都經過網絡鏈接起來。java
java.net 包中 J2SE 的 API 包含有類和接口,它們提供低層次的通訊細節。你能夠直接使用這些類和接口,來專一於解決問題,而不用關注通訊細節。編程
java.net 包中提供了兩種常見的網絡協議的支持:服務器
是傳輸控制協議的縮寫
,它保障了兩個應用程序之間的可靠通訊。一般用於互聯網協議,被稱 TCP / IP
。下面主要學習兩個知識點:。網絡
Socket 編程
:這是使用最普遍的網絡概念,它已被解釋地很是詳細。併發
URL 處理
:這部分會在另外的篇幅裏講,點擊這裏更詳細地瞭解在 Java 語言中的 URL 處理。socket
套接字使用TCP提供了兩臺計算機之間的通訊機制。 客戶端程序建立一個套接字,並嘗試鏈接服務器的套接字。學習
當鏈接創建時,服務器會建立一個 Socket 對象。客戶端和服務器如今能夠經過對 Socket 對象的寫入和讀取來進行通訊。.net
java.net.Socket 類表明一個套接字,而且 java.net.ServerSocket 類爲服務器程序提供了一種來監聽客戶端,並與他們創建鏈接的機制。code
Socket 客戶端實例
以下的 GreetingClient 是一個客戶端程序,該程序經過 socket 鏈接到服務器併發送一個請求,而後等待一個響應。server
// 文件名 GreetingClient.java import java.net.*; import java.io.*; public class GreetingClient { public static void main(String [] args) { String serverName = args[0]; int port = Integer.parseInt(args[1]); try { System.out.println("鏈接到主機:" + serverName + " ,端口號:" + port); Socket client = new Socket(serverName, port); System.out.println("遠程主機地址:" + client.getRemoteSocketAddress()); OutputStream outToServer = client.getOutputStream(); DataOutputStream out = new DataOutputStream(outToServer); out.writeUTF("Hello from " + client.getLocalSocketAddress()); InputStream inFromServer = client.getInputStream(); DataInputStream in = new DataInputStream(inFromServer); System.out.println("服務器響應: " + in.readUTF()); client.close(); }catch(IOException e) { e.printStackTrace(); } } }