Java學習筆記7-網絡編程

網絡編程是指編寫運行在多個設備(計算機)的程序,這些設備都經過網絡鏈接起來。

網絡編程是指編寫運行在多個設備(計算機)的程序,這些設備都經過網絡鏈接起來。java

java.net 包中 J2SE 的 API 包含有類和接口,它們提供低層次的通訊細節。你能夠直接使用這些類和接口,來專一於解決問題,而不用關注通訊細節。編程

java.net 包中提供了兩種常見的網絡協議的支持:服務器

  • TCP:TCP 是傳輸控制協議的縮寫,它保障了兩個應用程序之間的可靠通訊。一般用於互聯網協議,被稱 TCP / IP
  • UDP:UDP 是用戶數據報協議的縮寫,一個無鏈接的協議。提供了應用程序之間要發送的數據的數據包。

下面主要學習兩個知識點:。網絡

Socket 編程:這是使用最普遍的網絡概念,它已被解釋地很是詳細。併發

URL 處理:這部分會在另外的篇幅裏講,點擊這裏更詳細地瞭解在 Java 語言中的 URL 處理。socket

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();
      }
   }
}
相關文章
相關標籤/搜索