网络编程-UDP编程

网络编程-UDP编程2.UDP端口和TCP端口虽然都使用0~65535,但他们是两套独立的端口,即一个应用程序用TCP占用了端口1234,不影响另一个应用程序用UDP占用端口1234。在Java中使用UDP编程,仍然需要使用Socket,因为应用程序在使用UDP时必须指定网络接口(IP地址)和端口号。1.UDP和TCP编程相比,UDP编程就简单得多,因为UDP没有创建连接,数据包也是一次收发一个,所以没有流的概念。和服务器端相比,客户端使用UDP时,只需要直接向服务器端发送UDP包,然后接收返回的UDP包。…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

UDP概述:在Java中使用UDP编程,仍然需要使用Socket,因为应用程序在使用UDP时必须指定网络接口(IP地址)和端口号。(主要把数据封装成一个包)

UDP与TCP的区别:1.UDP和TCP编程相比,UDP编程就简单得多,因为UDP没有创建连接,数据包也是一次收发一个,所以没有流的概念。UDP比TCP效率高很多,代码也不会很繁琐。

                                 2.UDP端口和TCP端口虽然都使用0~65535,但他们是两套独立的端口,即一个应用程序用TCP占用了端口1234,不影响另一个应用程序用UDP占用端口1234。

服务器端:在服务器端,使用UDP也需要监听指定的端口。Java提供了DatagramSocket来实现这个功能,并且使用无限循环来监听这个端口,要接收一个UDP数据包,需要准备一个byte[]缓冲区。并且假设我们收取到的是一个String,那么,通过DatagramPacket返回的packet.getOffset()和packet.getLength()确定数据在缓冲区的起止。

现将服务器端代码呈现:

网络编程-UDP编程

 客户端:和服务器端相比,客户端使用UDP时,只需要直接向服务器端发送UDP包,然后接收返回的UDP包。代码呈现:

网络编程-UDP编程

服务器端代码实现结果:

网络编程-UDP编程

 

客户端代码实现结果:

网络编程-UDP编程

 

 知识小结:

1.使用UDP协议通信时,服务器和客户端双方无需建立连接;
2.服务器端用DatagramSocket(port)监听端口;
3.客户端使用DatagramSocket.connect()指定远程地址和端口;
4.双方通过receive()和send()读写数据;
5.DatagramSocket没有IO流接口,数据被直接写入byte[]缓冲区;

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195865.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月8日 下午10:22
下一篇 2025年10月8日 下午11:01


相关推荐

  • 养殖龙虾(OpenClaw),你必须配置这些虾粮和工具

    养殖龙虾(OpenClaw),你必须配置这些虾粮和工具

    2026年3月19日
    4
  • 森林岔路91%_森林的指路牌

    森林岔路91%_森林的指路牌原题链接森森开了一家快递公司,叫森森快递。因为公司刚刚开张,所以业务路线很简单,可以认为是一条直线上的N个城市,这些城市从左到右依次从0到(N−1)编号。由于道路限制,第i号城市(i=0,⋯,N−2)与第(i+1)号城市中间往返的运输货物重量在同一时刻不能超过C​i​​ 公斤。公司开张后很快接到了Q张订单,其中j张订单描述了某些指定的货物要从S​j​​ 号城市运输到T​j​​ 号城市。这里我们简单地假设所有货物都有无限货源,森森会不定时地挑选其中一部分货物进行运输。安全起见,这些货物不会在中

    2022年8月8日
    8
  • 单模光纤与多模光纤的简介与区别

    单模光纤与多模光纤的简介与区别nbsp 单模光纤 SingleModeFi 中心玻璃芯很细 芯径一般为 9 或 10 m 只能传一种模式的光 因此 其模间色散很小 适用于远程通讯 但还存在着材料色散和波导色散 这样单模光纤对光源的谱宽和稳定性

    2026年3月26日
    3
  • pytest skipif_pytest不是内部或外部命令

    pytest skipif_pytest不是内部或外部命令前言pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能Skip和xfail:处理那些不会成功的测试用例你可以对那些在某些特定平台上不能运行的测试用

    2022年7月29日
    8
  • python学习笔记29(利用pycharm在windows下出现闪退以及turtle 入门)

    python学习笔记29(利用pycharm在windows下出现闪退以及turtle 入门)1 利用 pycharm 在 windows 下出现闪退昨天下午去图书馆抱回来三大本学习 python 的书籍 准备进修一下 python 程序设计 正好课本里面有关于图形化程序设计的章节 但是这个我之前没接触过 我这个小白就对照着课本上面一行行的敲代码 但是在运行 python 文件的时候 对我辛辛苦苦孕育出来的成果一眼都没有见到 我就百度 百度告诉我 1 是我目前 pycharm 的版本太低啦 需要升级换代了 确实前几天就一直提醒我更新 但是我比较恋旧 这次被迫更新 但是更新之后还是出现闪退情况 所以说明我的错误不是因为版

    2026年3月26日
    2
  • 3DSlicer教程(1)简介

    3DSlicer教程(1)简介1 什么是 3DSlicer3DSl 用于医学图像分析 包括配准和交互式分割 和可视化 包括 3D 渲染 以及用于图像引导治疗研究的软件平台 支持的操作系统 Linux MacOSX 和 Windows2 相关网址英文文档英文社区论坛中文社区论坛 3 3DSlicer 能够应用那些数据格式 3DSlicer 能够应用的最基本格式是 DICOM DICOM 格式包含患者姓名 医院 检查日期 扫描方式 层厚等参数 通常 CT 和 MRI 扫描都会生成 DICOM 格式 我们要取得这些数据最简洁的方式是通过 PACS 系统

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号