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