Java Socket編程(二)-2

導讀:
  在Java中面向連接的類有兩種形式,它們分別是客戶端和服務器端.客戶端這一部分是最簡單的,所以我們先討論它.
  列表9.1列出了一個簡單的客戶端的程序.它向一個服務器發出一個請求,取回一個HTML文檔,並把它顯示在控制檯上.
  9.1一個簡單的socket客戶端
  import java.io.*;
  import java.net.*;
  /**
  * 一個簡單的從服務器取回一個HTML頁面的程序
  * 注意:merlin是本地機器的名字
  */
  public class SimpleWebClient {
  public static void main(String args[])
  {
  try
  {
  // 打開一個客戶端socket連接
  Socket clientSocket1 = new Socket("merlin", 80);
  System.out.println("Client1: " + clientSocket1);
  // 取得一個網頁
  getPage(clientSocket1);
  }
  catch (UnknownHostException uhe)
  {
  System.out.println("UnknownHostException: " + uhe);
  }
  catch (IOException ioe)
  {
  System.err.println("IOException: " + ioe);
  }
  }
  /**
  *通過建立的連接請求一個頁面,顯示迴應然後關閉socket
  */
  public static void getPage(Socket clientSocket)
  {
  try
  {
  // 需要輸入和輸出流
  DataOutputStream outbound = new DataOutputStream(
  clientSocket.getOutputStream() );
  DataInputStream inbound = new DataInputStream(
  clientSocket.getInputStream() );
  // 向服務器發出HTTP請求
  outbound.writeBytes("GET / HTTP/1.0 ");
  // 讀出迴應
  String responseLine;
  while ((responseLine = inbound.readLine()) != null)
  {
  // 把每一行顯示出來
  System.out.println(responseLine);
  if ( responseLine.indexOf("") != -1 )
  break;
  }
  // 清除
  outbound.close();
  inbound.close();
  clientSocket.close();
  }
  catch (IOException ioe)
  {
  System.out.println("IOException: " + ioe);
  }
  }
  }
  Java Socket編程(一)
  Java Socket編程(二)1
  Java Socket編程(二)2
  Java Socket編程(二)3
  Java Socket編程(三)1
  Java Socket編程(三)2
  Java Socket編程(四)1
  Java Socket編程(四)2
  Java Socket編程(五)
  在Java中面向連接的類有兩種形式,它們分別是客戶端和服務器端.客戶端這一部分是最簡單的,所以我們先討論它. 列表9.1列出了一個簡單的客戶端的程序.它向一個服務器發出一個請求,取回一個HTML文檔,並把它顯示在控制檯上. 9.1一個簡單的socket客戶端 import java.io.*; import java.net.*; /** * 一個簡單的從服務器取回一個HTML頁面的程序 * 注意:merlin是本地機器的名字 */ public class SimpleWebClient { public static void main(String args[]) { try { // 打開一個客戶端socket連接 Socket clientSocket1 = new Socket("merlin", 80); System.out.println("Client1: " + clientSocket1); // 取得一個網頁 getPage(clientSocket1); } catch (UnknownHostException uhe) { System.out.println("UnknownHostException: " + uhe); } catch (IOException ioe) { System.err.println("IOException: " + ioe); } } /** *通過建立的連接請求一個頁面,顯示迴應然後關閉socket */ public static void getPage(Socket clientSocket) { try { // 需要輸入和輸出流 DataOutputStream outbound = new DataOutputStream( clientSocket.getOutputStream() ); DataInputStream inbound = new DataInputStream( clientSocket.getInputStream() ); // 向服務器發出HTTP請求 outbound.writeBytes("GET / HTTP/1.0 "); // 讀出迴應 String responseLine; while ((responseLine = inbound.readLine()) != null) { // 把每一行顯示出來 System.out.println(responseLine); if ( responseLine.indexOf("") != -1 ) break; } // 清除 outbound.close(); inbound.close(); clientSocket.close(); } catch (IOException ioe) { System.out.println("IOException: " + ioe); } } }Java Socket編程(一)Java Socket編程(二)1Java Socket編程(二)2Java Socket編程(二)3Java Socket編程(三)1Java Socket編程(三)2Java Socket編程(四)1Java Socket編程(四)2Java Socket編程(五)

本文轉自
http://www.cn-java.com/www1/?action-viewnews-itemid-676
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章