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

歡迎訪問 生活随笔!

生活随笔

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

java

java udp发送速率_项目总结22:Java UDP Socket数据的发送和接收

發(fā)布時(shí)間:2023/12/9 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java udp发送速率_项目总结22:Java UDP Socket数据的发送和接收 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

項(xiàng)目總結(jié)22:Java UDP Socket數(shù)據(jù)的發(fā)送和接收

1-先上demo

客戶端(發(fā)送數(shù)據(jù))

packagecom.hs.pretest.udp;importjava.io.IOException;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;importjava.net.SocketException;public classUDPClient {/*** @description:數(shù)據(jù)發(fā)送方

*@param:[args]

*@return:void

* @date:2019/4/29

*@author:tangyj

* @remark:

**/

public static voidmain(String[] args) {try{

DatagramSocket socket= newDatagramSocket();

String s= "這是測(cè)試數(shù)據(jù)";byte[] buffer =s.getBytes();

DatagramPacket packet= new DatagramPacket(buffer, buffer.length, InetAddress.getByName("127.0.0.1"),10000);

socket.send(packet);

socket.close();

}catch(SocketException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}

}

}

服務(wù)端(接收數(shù)據(jù))

package com.hs.pretest.udp;

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.SocketException;

public class UDPServer {

/**

* @description:數(shù)據(jù)接收方

* @param:[args]

* @return:void

* @date:2019/4/29

* @author:tangyj

* @remark:

* */

public static void main(String[] args) {

try {

DatagramSocket socket = new DatagramSocket(10000);

byte[] buffer = new byte[65508];

DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length);

while(true){

socket.receive(packet);

String s = new String(packet.getData(),0,packet.getLength());

System.out.println(s);

}

} catch (SocketException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

2-操作流程

先啟動(dòng)服務(wù)端(服務(wù)端啟動(dòng)后,會(huì)一直處于響應(yīng)狀態(tài));在啟動(dòng)客戶端main方法,客戶端每啟動(dòng)一次,服務(wù)端就會(huì)收到一次數(shù)據(jù)

3-DatagramSocket

Java使用DatagramSocket代表UDP協(xié)議的Socket,DatagramSocket本身只是碼頭,不維護(hù)狀態(tài),不能產(chǎn)生IO流,它的唯一作用就是接收和發(fā)送數(shù)據(jù)報(bào),Java使用DatagramPacket來代表數(shù)據(jù)報(bào),DatagramSocket接收和發(fā)送的數(shù)據(jù)都是通過DatagramPacket對(duì)象完成的。

4-什么是UDP

UDP協(xié)議:全稱是用戶數(shù)據(jù)報(bào)協(xié)議,在網(wǎng)絡(luò)中它與TCP協(xié)議一樣用于處理數(shù)據(jù)包,是一種無連接的協(xié)議。

UDP協(xié)議的特點(diǎn):

(1)UDP無需建立連接。因此UDP不會(huì)引入建立連接的時(shí)延。試想如果DNS運(yùn)行在TCP之上而不是UDP,則DNS的速度會(huì)滿很多。HTTP使用TCP而不是UDP,是因?yàn)榛谖谋緮?shù)據(jù)的Web網(wǎng)頁(yè)來說,可靠性是至關(guān)重要的。

什么是DNS? DNS(Domain Name System,域名系統(tǒng)),萬(wàn)維網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使用戶更方便的訪問互聯(lián)網(wǎng),而不用去記住能夠被機(jī)器直接讀取的IP數(shù)串。通過域名,最終得到該域名對(duì)應(yīng)的IP地址的過程叫做域名解析(或主機(jī)名解析)。

(2)無連接狀態(tài)。TCP需要在端系統(tǒng)中維護(hù)連接狀態(tài)。此連接狀態(tài)包括接受和發(fā)送緩存、擁塞控制參數(shù)和確認(rèn)號(hào)和序號(hào)的參數(shù)。而UDP不維護(hù)連接狀態(tài),也不跟蹤這些參數(shù),因此某些專用應(yīng)用服務(wù)器使用UDP時(shí),一般都能支持更多的活動(dòng)客戶機(jī)。

(3)分組首部開銷更小。TCP有20字節(jié)的的首部開銷,而UDP只有8個(gè)字節(jié)的首部開銷。

(4)應(yīng)用層能夠更地控制要發(fā)送的數(shù)據(jù)和發(fā)送時(shí)間。UDP沒有擁塞控制,因此網(wǎng)絡(luò)中的擁塞也不會(huì)影響主機(jī)的發(fā)送效率。某些實(shí)時(shí)應(yīng)用(如直播)要求以穩(wěn)定的速度發(fā)送,能容忍一些數(shù)據(jù)的丟失,但不允許有較大的時(shí)延,而UDP正好可以滿足這些應(yīng)用的需求。

(5)UDP常用于一次性傳輸比較小數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用,如DNS、SNMP等,因?yàn)閷?duì)于這些應(yīng)用,若采用TCP,則將為創(chuàng)建連接、維護(hù)和拆除而帶來不小的開銷。UDP也常用于多媒體應(yīng)用(如IP電話、實(shí)時(shí)視頻會(huì)議、流媒體等),顯然,可靠數(shù)據(jù)傳輸對(duì)于這些應(yīng)用來說并不是最重要的,但TCP的擁塞控制會(huì)導(dǎo)致數(shù)據(jù)出現(xiàn)較大的延遲,這是它們不可容忍的。

(6)UDP提供盡最大努力的交付,即不保證可靠交付,但并不意味著應(yīng)用對(duì)數(shù)據(jù)的要求是不可靠的,因此需要維護(hù)傳輸可靠性的工作需要用戶在應(yīng)用層來完成。應(yīng)用實(shí)體可以根據(jù)應(yīng)用需求來靈活設(shè)計(jì)自己的可靠性機(jī)制。

(7)UDP是面向報(bào)文的的。發(fā)送方UDP對(duì)應(yīng)用層交下來的報(bào)文,在添加首部后就交付給IP層,既不合并,也不拆分,而是保留這些報(bào)文的邊界;接受方UDP對(duì)IP層交上來的用戶數(shù)據(jù)報(bào),在去除首部后就原封不動(dòng)的交付給上層的應(yīng)用進(jìn)程,一次交付一個(gè)完整的報(bào)文,因此報(bào)文不可分割,是UDP數(shù)據(jù)處理的最小單位。

總結(jié)

以上是生活随笔為你收集整理的java udp发送速率_项目总结22:Java UDP Socket数据的发送和接收的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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