14 java里的udp网络编程

UDP 广播机制 UDP  1,简介 UDP 为用户数据包协议,它的头为8byte数据;分别为16bit源端口号,16bit目的端口号,16bit长度,16bit校验和;它为无连接,主要用于视频传输相关的应用;因为 客户比较关注实时性; 它不需像TCP 那样,在发送数据前需建立连接;  2,基于udp 广播的client server端实例:client: #include #include # 阅读详情

java里把udp网络功能封装成DatagramSocket类.
udp的接收/发送端的用法:

1 创建DatagramSocket类对象,如是接收端时还需创建对象时绑定端口号.

    DatagramSocket udp = null; //声明一个DatagramSocket指针变量,用于存放创建的DatagramSocket对象地址

        try {
            udp = new DatagramSocket(7788); //创建udp对象并绑定端口号(接收端需要指定端口号), 如果是创建发送端的对象则可以不指定绑定端口号
        } catch (SocketException e) {  //异常处理
            ...
        }

2 创建DatagramSocket对象后,就可以进行接收或发送数据

        byte [] data = new byte[1500];
        DatagramPacket dp = new DatagramPacket(data, data.length);  // 创建一个udp数据包对象,用于存放接收到的或要发出的数据内容.


// 接收udp数据      
            try {
                udp.receive(dp); //等待接收数据
            } catch (IOException e) {
                //...
            }

//发出数据
            dp.setAddress(InetAddress.getByName("192.168.250.255")); //设置要发送到的目的ip地址
            dp.setPort(7788); //设置目的端口号
            udp.send(dp);   //发出数据


如实现一个udp广播功能网络程序,把接收到的数据广播到局域网内绑定端口号7788的udp网络程序.

/*  Main.java */

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class Main {

    public static void main(String[] args) throws IOException {
        DatagramSocket udp = null;

        try {
            udp = new DatagramSocket(7788); //创建udp对象并绑定端口号
        } catch (SocketException e) {
            e.printStackTrace();
            System.exit(0);
        }

        byte [] data = new byte[1500];

        DatagramPacket dp = new DatagramPacket(data, data.length);
        udp.setBroadcast(true); //让DatagramSocket对象支持udp广播功能

        while (true) {
            try {
                udp.receive(dp);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                break;
            }

            System.out.println(dp.getAddress()+":"+dp.getPort()+ " " + new String(data, 0, dp.getLength()));

            dp.setAddress(InetAddress.getByName("192.168.250.255")); //目的ip地址为广播地址
            dp.setPort(7788);
            udp.send(dp);
        }   

    }

}
14 Java网络编程初识 本文仅仅会介绍网络编程的初识,更加复制的内容会在网络编程中详细讲述。网络编程涉及到的知识点很多,需要系统学习,所以这里只是Java中的网络编程做一个初步认识。网络编程三要素IP地址:每台主机在互联网上都有一个唯一标识;设备在网络中的地址,是唯一的标识。端口号:(应用程序在设备中唯一的标识)IP地址能确定发给那一台主机,但是不知道发送给哪一个软件。就需要规定好一个端口号,例如,主机A给主机B的qq发消息,那么主机A使用5080端口发送消息,主机B也就必须使用5080端口接受。 阅读详情

相关推荐

【技术实战】SeaTunnel 实现 HTTP 到 Doris 数据同步的配置优化与问题解决

本文分享了使用SeaTunnel实现HTTP数据源到Doris数仓同步的实战经验。详细解析了从环境搭建、核心配置到生产部署的全流程,重点针对数据类型映射、分页拉取、依赖冲突等典型问题提供了解决方案,并给出了连接参数调优、错误处理等进阶优化技巧,帮助开发者构建稳定高效的数据同步管道。

gan8painter的博客 749

Android UDP收发开发及问题解决

1.Android UDP 开发    1.接收端socket          用创建DatagramSocket进行收发操作 try{ moUDPSocket=new DatagramSocket(port); //moUDPSocket.setBroadcast(true);//设置标志,广播数据报 } catch (SocketException

蓝点工坊的技术博客 1915

《童虎学习笔记》5分钟用Keepalived搭建MySQL高可用实现虚ip自动漂移

1

tonghu_note的博客 5617

Upd通信之QUdpSocket的unicast单播、broadcast广播、multicast组播

简 述: 了解Upd通信之QUdpSocket的unicast单播、broadcast广播、multicast组播,书写一个简单地例子;然后写了一个小的Qt例子,用来实现和验证它的空间的一些属性和功能的用法。 文章目录系统环境:QUdpSocket讲解:unicast单播/broadcast广播:multicast组播:运行效果:源码分析:unicast单播/broadcast广播:mu...

4270

告别TI官网迷路!手把手教你用C2000Ware为TMS320F28027搭建Proteus仿真工程模板

本文详细指导如何使用C2000Ware为TMS320F28027搭建Proteus仿真工程模板,帮助DSP开发者快速上手。从资源获取、工程目录设计到关键文件配置,再到CCS与Proteus的联调技巧,全面解析仿真工程搭建的每个步骤,特别适合初学者和工程师参考。

weixin_42715608的博客 472

Spring AI 项目实战(十二):Spring Boot +AI + DeepSeek + 百度OCR 公司发票智能处理系统的技术实践(附完整源码)

本文介绍了基于百度OCR API与DeepSeek AI的发票智能处理系统,通过整合AI技术实现发票识别、信息提取和验证的全流程自动化。系统采用Spring Boot 3.2.0架构,结合百度OCR的高精度图像识别和DeepSeek的语义理解能力,显著提升了发票处理效率与准确率。关键技术包括多模型融合、智能错误纠正和自适应学习机制,实现了95%以上的识别准确率,将传统处理效率提升90%以上。该系统为数字化转型中的企业财务管理提供了智能化解决方案,具备高精度识别、实时处理、智能验证等核心优势。

博客 1627

通过UDP广播自动获取IP地址

有时服务端地址是不固定的,需要自动获取;此时就可以通过UDP广播来方便地实现;给出了对应实现的客户端与服务端代码示例

飞鹰技术 1万+

MySQL——cost成本计算之MySQL如何选择使用索引(trace)

文章目录前言trace工具分析执行计划 前言 在之前博客中,根据测试案例,发现同样的sql语句,因为传入的条件值的不同,导致MySQL有时候选择使用索引,有时候又不适用索引。 如下所示sql的执行计划: EXPLAIN SELECT * FROM employees WHERE name > 'aaa'; EXPLAIN SELECT * FROM employees WHERE name > 'zzzz'; 在MySQL中,为什么会出现上述这种玄乎的现象呢? 本篇博客重点说明原因。 在说

专注写bug 679

java udp丢包_linux 系统 UDP 丢包问题分析思路

最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。在开始之前,我们先用一张图解释 linux 系统接收网络报文的过程。●首先网络报文通过物理网线发送到网卡●网络驱动程序会把网络中的报文读出来放到 ring buffer 中,这个过程使用 DMA(Direct Memory Access),不需要 CPU 参与●内核从 ring ...

weixin_42650811的博客 278

Nvidia Orin Driveos Camera 介绍及调试详解

自动驾驶-nvidia orin driveos Camera 驱动详解及调试

u011803281的博客 2991

【低照度图像增强系列】使用MSRCR(Multi-Scale Retinex with Color Restoration)算法对低照度图像进行增强处理

【低照度图像增强系列】使用MSRCR(Multi-Scale Retinex with Color Restoration)算法对低照度图像进行增强处理

静谧、淡雅 648

【Java】UDP网络编程:无连接通信到Socket实战

【Java】UDP网络编程:无连接通信到Socket实战

一年,我很需要这一年 3332

OpenCV实例(八)车牌字符识别技术(三)汉字识别

相较于数字和英文字符的识别,汽车牌照中的汉字字符识别的难度更大,主要原因有以下4个方面:(1)字符笔画因切分误差导致非笔画或笔画流失。(2)汽车牌照被污染导致字符上出现污垢。(3)采集所得车辆图像分辨率低导致多笔画的汉字较难分辨。(4)车辆图像采集时所受光照影响的差异导致笔画较淡。综合汉字识别时的这些难点来看,很难被直接提取的是字符的局部特征。笔画作为最重要的特征而仅存在于汉字中,这由先验知识可知。一旦捺、横、竖、撇这些笔画特征被提取到,对于汉字字符识别的工作就完成了许多。

小幽余生不加糖 1650

Java网络编程

Java网络编程 1、网络编程 1.1、概述 1、计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。网络编程就就是编写程序使联网的两个(或多个)设备(例如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持,通过其提供的接口我们可以很方便地进行网络编程。 2、Java是 Internet 上的语言,它从语言级上提供了对网络应用程 序的支持,程序员能够很容易开发常见的网络应用程序。 3、Java提供的网络类库,可以实现无痛的网络连

laizhenghua的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java-14_网络编程

Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。

m0_62036548的博客 1162

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

14、Java网络编程

Java网络编程

xiaosuxueJava的博客 481

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

网络编程及三大协议(TCP + UDP + Http)

UDP(User Datagram Protocol)用户数据报包协议,UDP和TCP位于同一层-传输层,但它对于数据包的顺序错误或重发没有TCP可靠;UDP是一种面向无连接的通信协议。UDP向应用程序提供一种发送封装的原始IP数据报的方法,并且发送时无需建立连接,不保证可靠数据的传输UDP — 发短信TCP — 打电话new SendThread(socket , "127.0.0.1" , 9099 , "马超") . start();} }

GL280599ZL的博客 5024

探索Java网络编程精髓:UDP与TCP的实战魔法!

Java 中提供了专门的网络编程程序包 java.net,提供了两种通信协议:UDP(数据报协议)和 TCP(传输控制协议),本文对两种通信协议的开发进行详细介绍。1UDP 介绍UDP:User Datagram Protocol,是一种无连接的传输层协议,是不可靠的消息传输服务。UDP 为应用程序提供了一种无需建立连接就...

cnzzs的博客 1128

Java基础复习——DAY14(网络编程;UDP ; TCP )

网络编程 一、网络编程入门 1. 网络编程三要素 网络编程实现,不同计算机之间的数据交换 网络编程三要素: IP地址 计算机的标识符 端口 网络通信本质上是两个应用程序之间的通信。端口是应用程序的标识 协议 遵守的规则(UDP协议和TCP协议) IP 常用命令: ipconfig:查看本机ip地址 ping IP地址:检查网络是否连通 特殊ip地址:127.0.0.1 回送地址,可以代表本机,一般用来测试 端口 应用程序的唯一标识 0- 65535,0~1023知名网络服务,不要用 协议

Kevinwen0228的博客 643

14、网络编程作业

网络编程作业 一、填空题 ____ip地址_______用来标志网络中的一个通信实体的地址。通信实体可以是计算机,路由器等。 2.统一资源定位符URL是指向互联网“资源”的指针,由4部分组成:协议、存放资源的主机域名、__端口__和资源路径和文件名。 __URL 是统一资源定位器的简称,它表示Internet上某一资源的地址。 4.在Socket编程中,IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用 __端口 来区分这些应用程序。 5.在Java S

友培的博客 1390

【java基础】 14 网络编程

目录 14.1 网络编程概述 14.2 网络通信要素概述 1 如何实现网络中的主机互相通信 14.3通信要素1:IP和端口号 1 IP地址(InetAddress) 2 InetAddress类 3 端口号 14.4通信要素2:网络通信协议 1 网络通信协议 2 TCP/IP协议簇 3 TCP和UDP 14.5 TCP网络编程 14.6 UDP网络编程 14.7 URL编程 1 URL 2 URL类构造器 3 方法 14.1 网络编程概述 Java提供的网...

strange_aa的博客 679

第 14 天 Java 网络编程

Java 网络编程(ip、tcp、udp )一、网络编程概述1. 如何实现网络中的主机互相通信2. 网络通信协议3. ip 和端口号4. InetAddress类二、 网络协议1. 概述2. TCP/IP协议簇3. TCP 和 UDP4. Socket三、TCP网络编程1. 基于Socket的TCP编程例题四 、UDP网络通信五、URL编程1. URL类2. 针对HTTP协议的URLConnection类3. URI、URL和URN的区别六、小 结 一、网络编程概述 Java是 Internet 上的语言,

我还是个菜鸟 789

Java基础14-网络编程

每个客户端的socket还是交给服务端一个子线程进行处理,如果上线就将socket对象用集合保存起来,用来转发信息,如果下线就将其删除掉。不事先建立连接,数据按照包发,一包数据包含:自己的IP、程序端口,目的地IP、程序端口和数据(限制在64KB内),超过就分包发送。这个案例只能接收一个程序的信息,没法实现接收多个客户端发送的信息:因为服务端现在只有一个主线程,只能处理一个客户端的消息。不事先建立连接,发送端每次把要发送的数据(限制在64KB内)、接收端IP、 等信息封装成一个数据包, 发出去就不管了。

qq_57340195的博客 807

Java网络编程——TCP、UDP必修篇

40.网络编程 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 如何准确的定位到网络上的一台计算机 ip:192.168.16.103:端口 , 定位到具体的某个资源 连接上主机之后如何进行数据传输呢? 网络通信的要素 通信双方的地址 ip 端口号 IP分类 IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任

weixin_44064134的博客 684
上一篇: 13 java里的tcp网络编程
下一篇: 15 java在linux上jni的编程应用
jklinux
博客等级 码龄10年 1060粉丝 276原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值