日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

udp模拟tcp java_Java简单实现UDP和TCP

發(fā)布時間:2025/3/12 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 udp模拟tcp java_Java简单实现UDP和TCP 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

TCP實現(xiàn)

TCP協(xié)議需要在雙方之間建立連接,通過輸入輸出流來進(jìn)行數(shù)據(jù)的交換,建立需要通過三次握手,斷開需要四次揮手,保證了數(shù)據(jù)的完整性,但傳輸效率也會相應(yīng)的降低。

簡單的TCP實現(xiàn)

//服務(wù)端

public class TcpServer {

public static void main(String[] args) throws IOException {

ServerSocket serverSocket = new ServerSocket(8886); // 建立服務(wù)端,ip為本機ip,端口為8886

Socket accept = serverSocket.accept(); // 監(jiān)聽客戶端的連接,一旦有客戶端連接,則會返回客戶端對應(yīng)的accept

InputStream in = accept.getInputStream(); //獲取到客戶端的輸出流

byte b[] = new byte[1024];

int len = in.read(b);

System.out.println("接受到客戶端數(shù)據(jù),返回數(shù)據(jù)"+new String(b,0,len));

OutputStream out = accept.getOutputStream(); // 給客戶端發(fā)送消息

out.write("服務(wù)端已經(jīng)接受".getBytes());

serverSocket.close();

}

}

// 客戶端

public class TcpClient {

public static void main(String[] args) throws IOException {

Socket socket = new Socket("127.0.0.1", 8886); // 通過Socket來建立和服務(wù)端的連接

OutputStream out = socket.getOutputStream(); // 獲取輸出流(客戶端輸出流即向服務(wù)端輸出信息)

out.write("hello tcp Server".getBytes()); // 輸出信息

InputStream in = socket.getInputStream(); // 接受服務(wù)端的消息

byte b[] = new byte[1024];

int len = in.read(b);

System.out.println("接受到服務(wù)器消息 : "+new String(b,0,len)); // 輸出

out.write("返回的的數(shù)據(jù)已經(jīng)收到 ".getBytes()); // 向服務(wù)器返回消息

socket.close();

}

}

改進(jìn)服務(wù)端,啟用多線程來接受客戶端的數(shù)據(jù)

// server

public static void main(String[] args) throws IOException {

ServerSocket serverSocket = new ServerSocket(8886); // 建立服務(wù)端,ip為本機ip,端口為8886

int i=4;

while(i>2){

Socket accept = serverSocket.accept(); // 監(jiān)聽客戶端的連接,一旦有客戶端連接,則會返回客戶端對應(yīng)的accept

ServerThread st = new ServerThread(accept); // 啟動線程

Thread th = new Thread(st);

th.start();

}

serverSocket.close();

}

// thread

public class ServerThread implements Runnable {

private Socket accept;

public ServerThread(Socket s) {

this.accept = s;

}

public void run(){

InputStream in;

try {

in = accept.getInputStream();

byte b[] = new byte[1024];

int len = in.read(b);

System.out.println("接受到客戶端數(shù)據(jù),返回數(shù)據(jù)" + new String(b, 0, len));

OutputStream out = accept.getOutputStream(); // 給客戶端發(fā)送消息

out.write("服務(wù)端已經(jīng)接受".getBytes());

} catch (IOException e) {

e.printStackTrace();

}

}

}

傳遞圖片

// 服務(wù)端

public class Server {

public static void main(String[] args) throws IOException {

ServerSocket serverSocket = new ServerSocket(5555);

Socket ss = serverSocket.accept();

BufferedInputStream br = new BufferedInputStream(ss.getInputStream());

BufferedOutputStream bw = new BufferedOutputStream(new FileOutputStream("copy.jpg")); // 寫出文件流

byte b[] = new byte[1024];

int len = 0;

while ((len = br.read(b)) != -1) { // 寫出文件

bw.write(b, 0, len);

bw.flush(); // 別忘了刷新,要不然最后一塊緩沖區(qū)字符串會缺失

}

BufferedWriter bw2 = new BufferedWriter(new OutputStreamWriter(ss.getOutputStream())); // 輸出

bw2.write("圖片傳輸成功");

bw2.flush();

bw.close();

ss.close();

}

}

// 客戶端

public class Client {

public static void main(String[] args) throws UnknownHostException, IOException {

Socket socket = new Socket("127.0.0.1", 5555);

BufferedInputStream in = new BufferedInputStream(new FileInputStream("c.jpg"));

BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());

byte b[] = new byte[1024];

int len = 0;

while ((len = in.read(b)) != -1) {

out.write(b, 0, len);

out.flush(); // 刷新緩沖區(qū) 要不然最后一塊緩沖區(qū)字符串會缺失

}

socket.shutdownOutput(); // 關(guān)閉流以后Server段才會接收道結(jié)束字符結(jié)束接受

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

String line;

while ((line = br.readLine()) != null) {

System.out.println(line);

}

in.close();

socket.close();

}

}

UDP實現(xiàn)

UDP是將數(shù)據(jù)打成數(shù)據(jù)包向?qū)Ψ桨l(fā)送,只關(guān)系是否發(fā)送成功,而不關(guān)心是否接收成功,傳輸速度快,但是可靠性低。

udp代碼實現(xiàn)

// 發(fā)送端

public class SendDemo {

public static void main(String[] args) throws IOException {

DatagramSocket ds = new DatagramSocket(); // 此類表示用來發(fā)送和接收數(shù)據(jù)報包的套接字。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 鍵盤輸入

String line = null;

while ((line = br.readLine()) != null) {

byte[] bytes = line.getBytes();

DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName("127.0.0.1"), 10005); // 數(shù)據(jù)包對象

ds.send(dp);

if ("886".equals(line)) { // 當(dāng)輸入886時結(jié)束發(fā)送

break;

}

}

ds.close();

}

}

// 接收端

public class ReciveDemo {

public static void main(String[] args) throws IOException {

DatagramSocket ds = new DatagramSocket(10005); // 建立服務(wù)端

byte bytes[] = new byte[1024];

DatagramPacket dp = new DatagramPacket(bytes, bytes.length); // 建立數(shù)據(jù)包對象

while (true) {

ds.receive(dp); // 接受數(shù)據(jù)包

byte[] data = dp.getData(); // 獲取數(shù)據(jù)

String str = new String(data, 0, dp.getLength());

if ("886".equals(str)) {

break;

}

System.out.println(str);

}

ds.close();

}

}

總結(jié)

以上是生活随笔為你收集整理的udp模拟tcp java_Java简单实现UDP和TCP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲一区www| 天堂国产 | 中文字幕在线成人 | 免费视频99 | 国产三级漂亮女教师 | 免费看片91| 国产精品美女久久久久av爽 | 人人澡人人澡人人 | 韩国中文三级hd字幕 | 国产一二三| 韩国毛片一区二区 | 国产有码视频 | 一区二区三区视频免费在线观看 | 麻豆伊甸园 | 久久精品无码毛片 | 日韩中文字幕综合 | 中国大陆高清aⅴ毛片 | 久久国产福利一区 | 成人在线a | 狠狠干天天色 | 久久久久久久久综合 | 国产色婷婷一区二区三区竹菊影视 | 亚洲影视网| 色小说香蕉| 永久精品网站 | 毛片基地免费 | 西西久久 | 日本韩国在线播放 | 亚洲乱码精品久久久久 | 狼干综合| 蜜桃av成人永久免费 | 中国爆后菊女人的视频 | av一区二区不卡 | 国产精品一区二区三区在线播放 | 国产日视频 | 天天舔天天干天天操 | jizz一区二区 | yjizz视频| 麻豆一区二区在线观看 | 久久爱资源网 | 久久精品综合网 | 森泽佳奈中文字幕 | 黄色免费看网站 | 情欲超| 亚洲精品国产精华液 | 情侣黄网站免费看 | 美女被娇喘视频 | 欧美性猛交xxxx黑人交 | 国产视频一区二区在线 | 亚洲AV无码精品自拍 | 亚洲男女| 日韩av大片在线观看 | jk美女又爽又黄视频 | 少妇福利在线 | 亚洲欧美国产高清va在线播放 | 欧美国产高潮xxxx1819 | 奇米影视第四色首页 | 精品免费一区二区三区 | 国产色综合视频 | 人人草人人草 | 在线亚洲综合 | 六月色播| 极品超粉嫩尤物69xx | 免费99精品国产自在在线 | 毛片综合| 日韩偷拍一区 | 在线免费一区二区 | 你懂的网站在线 | 成人一级片视频 | 国产人妻互换一区二区 | 免费黄色一区二区 | 无码成人一区二区 | 少妇一级淫片免费视频 | 黄色一级大片在线观看 | 国产不卡免费视频 | 岛国片在线播放 | 成人在线观看一区二区 | 伊人福利在线 | 黑帮大佬和我的365日第二部 | 中文字幕一区二区三区人妻四季 | 欧美六区 | 午夜av剧场 | 性视频免费看 | 97影院 | 日韩插 | 成人夜间视频 | 国产无套精品一区二区三区 | 日韩性在线 | 久久精品亚洲精品 | 麻豆视频国产 | 桃色成人网 | 欧美69精品久久久久久不卡 | 果冻传媒18禁免费视频 | 亚洲A∨无码国产精品 | 曰本黄色大片 | 我和单位漂亮少妇激情 | 国模杨依粉嫩蝴蝶150p | 丰满人妻一区二区三区性色 | 欧美性大交 |