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法式設計有所贊助。