最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 基于UDP協(xié)議實(shí)現(xiàn)消息發(fā)送

 更新時(shí)間:2020年11月21日 17:36:42   作者:Hateyes  
這篇文章主要介紹了Java 基于UDP協(xié)議實(shí)現(xiàn)消息發(fā)送,幫助大家更好的理解和學(xué)習(xí)Java網(wǎng)絡(luò)編程,感興趣的朋友可以了解下

發(fā)短信:不用連接,但需要知道對(duì)方的地址,客戶(hù)端、服務(wù)端沒(méi)有明確的界限,可以說(shuō)沒(méi)有客戶(hù)端、服務(wù)端一說(shuō)。

發(fā)送端

package lesson03;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * 發(fā)送端
 */
public class UdpClientDemo1 {

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

    //1、建立一個(gè) Socket
    DatagramSocket socket = new DatagramSocket();

    /**
     * 2、建個(gè)包
     */

    //需要發(fā)送的消息
    String msg = "你好啊,服務(wù)器!";

    //發(fā)送地址
    InetAddress localhost = InetAddress.getByName("localhost"); //主機(jī)
    //發(fā)送端口
    int port = 9090;

    /**
     * 五個(gè)參數(shù):
     * @param  buf  msg.getBytes():需要發(fā)送的數(shù)據(jù)包
     * @param  offset  0:數(shù)據(jù)偏移量
     * @param  length  msg.getBytes().length:數(shù)據(jù)長(zhǎng)度
     * @param  address  localhost:目標(biāo)地址
     * @param  port  port:目標(biāo)端口
     */
    DatagramPacket packet = new DatagramPacket(msg.getBytes(), 0, msg.getBytes().length, localhost, port);

    //3、發(fā)送包
    socket.send(packet);

    //4、關(guān)閉流
    socket.close();
  }

}

接收端

package lesson03;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**
 * 接收端
 */
public class UdpServerDemo1 {

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

    //開(kāi)放端口
    DatagramSocket socket = new DatagramSocket(9090);

    //接收數(shù)據(jù)包
    byte[] buffer = new byte[1024];
    DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length);

    //接收
    socket.receive(packet); //阻塞接收

    //輸出數(shù)據(jù)包地址
    System.out.println(packet.getAddress().getHostAddress());
    /**
     * 輸出數(shù)據(jù)包數(shù)據(jù)
     * packet:Data 類(lèi)型
     * 通過(guò)構(gòu)造器轉(zhuǎn)成 String 類(lèi)型:new String();
     */
    System.out.println(new String(packet.getData(), 0, packet.getLength()));

    //關(guān)閉連接
    socket.close();

  }

}

以上就是Java 基于UDP協(xié)議實(shí)現(xiàn)消息發(fā)送的詳細(xì)內(nèi)容,更多關(guān)于Java 消息發(fā)送的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Java單元測(cè)試之Junit框架使用教程

    詳解Java單元測(cè)試之Junit框架使用教程

    單元測(cè)試就是針對(duì)最小的功能單元編寫(xiě)測(cè)試代碼,Junit是使用Java語(yǔ)言實(shí)現(xiàn)的單元測(cè)試框架,它是開(kāi)源的,Java開(kāi)發(fā)者都應(yīng)當(dāng)學(xué)習(xí)并使用Junit編寫(xiě)單元測(cè)試。本文就來(lái)講講Junit框架的使用教程,需要的可以參考一下
    2022-05-05
  • MyBatis?詳細(xì)講解動(dòng)態(tài)?SQL的使用

    MyBatis?詳細(xì)講解動(dòng)態(tài)?SQL的使用

    動(dòng)態(tài)?SQL?是?MyBatis?的強(qiáng)大特性之一。如果你使用過(guò)?JDBC?或其它類(lèi)似的框架,你應(yīng)該能理解根據(jù)不同條件拼接?SQL?語(yǔ)句有多痛苦,例如拼接時(shí)要確保不能忘記添加必要的空格,還要注意去掉列表最后一個(gè)列名的逗號(hào)。利用動(dòng)態(tài)?SQL,可以徹底擺脫這種痛苦
    2022-04-04
  • Java14發(fā)布了,再也不怕NullPointerException了

    Java14發(fā)布了,再也不怕NullPointerException了

    這篇文章主要介紹了Java14發(fā)布了,再也不怕NullPointerException了,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • 關(guān)于java的九個(gè)預(yù)定義Class對(duì)象

    關(guān)于java的九個(gè)預(yù)定義Class對(duì)象

    這篇文章主要介紹了關(guān)于java的九個(gè)預(yù)定義Class對(duì)象,在Java中,沒(méi)有類(lèi)就無(wú)法做任何事情。然而,并不是所有的類(lèi)都具有面向?qū)ο筇卣?。如Math.random,并只需要知道方法名和參數(shù),需要的朋友可以參考下
    2023-05-05
  • SpringBoot之@Controller和@RequestMapping的實(shí)現(xiàn)原理解讀

    SpringBoot之@Controller和@RequestMapping的實(shí)現(xiàn)原理解讀

    這篇文章主要介紹了SpringBoot之@Controller和@RequestMapping的實(shí)現(xiàn)原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Mybatis通過(guò)Mapper代理連接數(shù)據(jù)庫(kù)的方法

    Mybatis通過(guò)Mapper代理連接數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了Mybatis通過(guò)Mapper代理連接數(shù)據(jù)庫(kù)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • 詳解如何使用MyBatis簡(jiǎn)化JDBC開(kāi)發(fā)

    詳解如何使用MyBatis簡(jiǎn)化JDBC開(kāi)發(fā)

    JavaEE?企業(yè)級(jí)?Java?項(xiàng)目中的經(jīng)典三層架構(gòu)為表現(xiàn)層,業(yè)務(wù)層和持久層.MyBatis?對(duì)?JDBC?代碼進(jìn)行了封裝,作為一款優(yōu)秀的持久層框架,專(zhuān)門(mén)用于簡(jiǎn)化JDBC開(kāi)發(fā).本文主要介紹一下如何使用MyBatis簡(jiǎn)化JDBC開(kāi)發(fā),需要的可以參考一下
    2023-01-01
  • Java中用戶(hù)線(xiàn)程與守護(hù)線(xiàn)程的使用區(qū)別

    Java中用戶(hù)線(xiàn)程與守護(hù)線(xiàn)程的使用區(qū)別

    這篇文章主要介紹了Java中用戶(hù)線(xiàn)程與守護(hù)線(xiàn)程的使用區(qū)別,Java語(yǔ)言中無(wú)論是線(xiàn)程還是線(xiàn)程池,默認(rèn)都是用戶(hù)線(xiàn)程,因此用戶(hù)線(xiàn)程也被成為普通線(xiàn)程,下文關(guān)于其與守護(hù)線(xiàn)程的區(qū)別詳情,需要的小伙伴可以參考一下
    2022-05-05
  • Java Iterator接口實(shí)現(xiàn)代碼解析

    Java Iterator接口實(shí)現(xiàn)代碼解析

    這篇文章主要介紹了Java Iterator接口實(shí)現(xiàn)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Spring定時(shí)任務(wù)注解@Scheduled詳解

    Spring定時(shí)任務(wù)注解@Scheduled詳解

    這篇文章主要介紹了Spring定時(shí)任務(wù)注解@Scheduled詳解,@Scheduled注解是包org.springframework.scheduling.annotation中的一個(gè)注解,主要是用來(lái)開(kāi)啟定時(shí)任務(wù),本文提供了部分實(shí)現(xiàn)代碼與思路,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

蒙阴县| 永顺县| 方山县| 汉寿县| 汽车| 赤水市| 柏乡县| 定南县| 墨竹工卡县| 永善县| 威海市| 沙洋县| 洛扎县| 分宜县| 合肥市| 叙永县| 武定县| 庄河市| 孙吴县| 鸡东县| 苏尼特右旗| 安顺市| 株洲市| 信阳市| 陆良县| 凭祥市| 靖州| 科技| 大渡口区| 合水县| 永胜县| 东源县| 肥城市| 绥滨县| 涟源市| 朔州市| 桐城市| 阳春市| 内江市| 柳州市| 金塔县|