首页 > 编程语言 >《Java编程思想第四版》学习笔记53--关于UDP

《Java编程思想第四版》学习笔记53--关于UDP

时间:2024-01-13 12:31:52浏览次数:30  
标签:UDP DatagramPacket Java String -- return new buf

1、TCP 和 UDP 端口是相互独立的。也就是说,可以在端口 8080 同时运行一个 TCP 和 UDP 服务程序,两者之间不会产生冲突。

P.547

//: Dgram.java
// A utility class to convert back and forth
// Between Strings and DataGramPackets.
import java.net.*;
public class Dgram {
public static DatagramPacket toDatagram(
String s, InetAddress destIA, int destPort) {
// Deprecated in Java 1.1, but it works:
byte[] buf = new byte[s.length() + 1];
s.getBytes(0, s.length(), buf, 0);
// The correct Java 1.1 approach, but it's
// Broken (it truncates the String):
// byte[] buf = s.getBytes();
return new DatagramPacket(buf, buf.length,
destIA, destPort);
}
public static String toString(DatagramPacket p){
// The Java 1.0 approach:
// return new String(p.getData(),
// 0, 0, p.getLength());
// The Java 1.1 approach:
return
new String(p.getData(), 0, p.getLength());
}
} ///:~

2、Dgram 的第一个方法采用一个 String、一个 InetAddress 以及一个端口号作为自己的参数,将 String 的内容复制到一个字节缓冲区,再将缓冲区传递进入 DatagramPacket 构建器,从而构建一个 DatagramPacket。注意缓冲区分配时的"+1"—— 这对防止截尾现象是非常重要的。

P.548

注意以上这两点!

标签:UDP,DatagramPacket,Java,String,--,return,new,buf
From: https://blog.51cto.com/u_16183536/9231692

相关文章

  • 开发日记2(公共类)
    没想到尽然开始了我的java成长之路。之前专注数据库方面,主要做bi业务分析、近几年很多精力又用到需求分析和项目管理上,学过C,但没用过,java看了半本书,但始终没有跨出实战的那一步近两年因为大数据复杂集成项目管理的原因,入了java坑。一点也不会,容易被糊弄,也没办法真正在技术层面去理......
  • web目录探测:Dirsearch
    简介dirsearch是一个基于python的命令行工具,用于暴力扫描页面结构,包括网页中的目录和文件。https://github.com/maurosoria/dirsearch用python编写的Dirsearch是一个命令行网站目录扫描程序。它具有许多功能:多线程,使其比任何其他站点扫描仪工具都快执行递归暴力破解具有HTT......
  • 文章目录
    (此博客适用对象:产品结构工程、机械工程师目前是先随便写点,想到什么主题就写什么主题,后面写多了会系统分类整理下。)文章目录随时更新:塑胶结构-螺纹连接设计规范铝及铝合金阳极氧化技术规范Creo软件使用问题及相应解决办法......
  • Python手相识别教程5拇指
    5拇指拇指是手相术中最重要的部分之一。印度和中国的某些早期手相学派仅凭拇指就能评估一个人的性格和成功机会。拇指是看手相的微缩画布--小小的手指中蕴含着丰富的信息。拇指可以让你一目了然地了解一个人的深刻见解。从字面上看,它就像一幅人物性格的"缩略图"。拇指的大小和......
  • 拖曳排序
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=......
  • Rake接收机和IRC接收机
    1、RAKE接收技术当发射端采用扩频信号时,接收端信号特点的分析:当多径时间对准时,解扩输出具有尖锐的峰值特性。不同多径时延信号,将输出多个峰值。合并多径时延信号,可达到时间分集效果。(1)RAKE接收原理RAKE接收机是专为CDMA系统设计的分集接收器形状类似于农用工具耙子而得名......
  • Ubuntu 20.04版本安装k8s控制节点
    一、环境配置服务器配置:2核4GIP:192.168.10.23主机名:master4将改主机加入此集群#1.修改主机名hostnamectlset-hostnamemaster4&&bash#2.添加hosts127.0.1.1master4192.168.10.20master192.168.10.21master2192.168.10.22master3192.168.10.23master419......
  • vim模式用法及命令
    vim的安装[root@ycy2023~]#yuminstallvim-y学习vim编辑器vim命令模式(重点)进入命令模式按a,i,o由命令模式进入编辑模式按ESC键就可以退出编辑模式进入命令模式光标移动按a进入是当前光标所在的字符后光标前输入内容,按i进入是当前光标所在字符前输入内容,按o进入......
  • 基于融合语义信息改进的内容推荐算法。Improved content recommendation algorithm in
    引言路漫漫其修远兮,吾将上下而求索。每天一篇论文,做更好的自己。本文读的这篇论文为发表于2023年5月28日的一篇名为《基于融合语义信息改进的内容推荐算法》(基于融合语义信息改进的内容推荐算法)的文章,文章主要介绍了基于内容的推荐技术在电子商务和教育领域的广泛应用,以及传统基......
  • 扩散模型
      有不少介绍扩散模型的资料,其中"UnderstandingDiffusionModels:AUnifiedPerspective"论文是我读到的解释最详细也是最易于理解的一个。数学符号用粗体字母表示向量,如\(\mathbf{x},\mathbf{z}\)用字母\(\mathbf{x}\)表示可观测到变量,用字母\(\mathbf{z}\)表示隐变......