程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java完成Socket的TCP傳輸實例

Java完成Socket的TCP傳輸實例

編輯:關於JAVA

Java完成Socket的TCP傳輸實例。本站提示廣大學習愛好者:(Java完成Socket的TCP傳輸實例)文章只能為提供參考,不一定能成為您想要的結果。以下是Java完成Socket的TCP傳輸實例正文


本文實例講述了Java完成Socket的TCP傳輸。分享給年夜家供年夜家參考。詳細剖析以下:

客戶端發數據到辦事端

* Tcp傳輸,客戶端樹立的進程。
* 1,創立tcp客戶端socket辦事。應用的是Socket對象。
* 建議該對象一創立就明白目標地。要銜接的主機。
* 2,假如銜接樹立勝利,解釋數據傳輸通道已樹立。
* 該通道就是socket流 ,是底層樹立好的。 既然是流,解釋這裡既有輸出,又有輸入。
* 想要輸出或許輸入流對象,可以找Socket來獲得。
* 可以經由過程getOutputStream(),和getInputStream()來獲得兩個字撙節。
* 3,應用輸入流,將數據寫出。
* 4,封閉資本。

package com.socket.tcp.demo; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.net.Socket; 
import java.net.UnknownHostException; 
public class ClientDemo { 
  /** 
   * @param args 
   * @throws IOException 
   * @throws UnknownHostException 
   */ 
  public static void main(String[] args) throws UnknownHostException, IOException { 
    //客戶端發數據到辦事端 
    /* 
     * Tcp傳輸,客戶端樹立的進程。 
     * 1,創立tcp客戶端socket辦事。應用的是Socket對象。 
     *   建議該對象一創立就明白目標地。要銜接的主機。 
     * 2,假如銜接樹立勝利,解釋數據傳輸通道已樹立。 
     *   該通道就是socket流 ,是底層樹立好的。 既然是流,解釋這裡既有輸出,又有輸入。 
     *   想要輸出或許輸入流對象,可以找Socket來獲得。 
     *   可以經由過程getOutputStream(),和getInputStream()來獲得兩個字撙節。 
     * 3,應用輸入流,將數據寫出。 
     * 4,封閉資本。 
     */ 
    //創立客戶端socket辦事。 
    //銜接目的辦事器的地址,192.168.1.100是目的辦事器的地址,10002是目的辦事器的端口 
    Socket socket = new Socket("192.168.1.100",10002); 
    //獲得socket流中的輸入流。 向辦事器輸入新聞,即發新聞到辦事器 
    OutputStream out = socket.getOutputStream(); 
    //應用輸入流將指定的數據寫出去。 
    out.write("tcp演示:哥們又來了!".getBytes()); 
    //封閉資本。 
    socket.close(); 
  } 
}

辦事端吸收客戶端發送過去的數據,並打印在掌握台上。

* 樹立tcp辦事真個思緒:
* 1,創立辦事端socket辦事。經由過程ServerSocket對象。
* 2,辦事端必需對外供給一個端口,不然客戶端沒法銜接。
* 3,獲得銜接過去的客戶端對象。
* 4,經由過程客戶端對象獲得socket流讀取客戶端發來的數據
* 並打印在掌握台上。
* 5,封閉資本。關客戶端,關辦事端。

package com.socket.tcp.demo; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.ServerSocket; 
import java.net.Socket; 
public class ServerDemo { 
  //UDP:發送端、吸收端 (無銜接) 
  //TCP:客戶端、辦事端 (要銜接)先啟動辦事端,在啟動客戶端 
  /** 
   * @param args 
   * @throws IOException 
   */ 
  public static void main(String[] args) throws IOException { 
   //辦事端吸收客戶端發送過去的數據,並打印在掌握台上。  
    /* 
     * 樹立tcp辦事真個思緒: 
     * 1,創立辦事端socket辦事。經由過程ServerSocket對象。 
     * 2,辦事端必需對外供給一個端口,不然客戶端沒法銜接。 
     * 3,獲得銜接過去的客戶端對象。 
     * 4,經由過程客戶端對象獲得socket流讀取客戶端發來的數據 
     *   並打印在掌握台上。 
     * 5,封閉資本。關客戶端,關辦事端。 
     */ 
    //1創立辦事端對象。 
    ServerSocket ss = new ServerSocket(10002);
    //監聽運用地點辦事器的10002端口,
    //看有無客戶端銜接過去,或許發送新聞 
    //2,獲得銜接過去的客戶端對象。 
    Socket s = ss.accept();//壅塞式. 
    String ip = s.getInetAddress().getHostAddress();
    //獲得銜接過去客戶真個IP地址 
    //3,經由過程socket對象獲得輸出流,要讀取客戶端發來的數據, 
    InputStream in = s.getInputStream(); 
    byte[] buf = new byte[1024]; 
    int len = in.read(buf); 
    String text = new String(buf,0,len); 
    System.out.println(ip+":"+text); 
    s.close(); 
    ss.close();//封閉辦事器,實際上是不消關的 
  } 
}

運轉後果圖:(先啟動辦事端,後啟動客戶端)

願望本文所述對年夜家的java法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved