UDP网络通信的发包过程

1、使用DatagramSocket()创建一个数据包套接字。
2、使用DatagramPacket(byte[]buf, int offset, int length, InetAddress address, int port)创建要发送的数据包。
3、使用DatagramSocket类的send()方法数据包

UDP网络通信的收包过程

1、使用DatagramSocket(int)创建一个数据包套接字,绑定到指定的端口。
2、使用DatagramPacket(byte[]buf,int length)创建字节数组来接收数据包.
3、使用DatagramSocket类的receive()方法接收UDP

获取的数据实际上就存储在创建空包的数组种,转换显示时建议设置长度
System.out.println(dp.getLength()); //数据的具体长度
String str=new String(buffer,0,dp.getLength());

一般来说UDP协议的最大数据包的长度64k

public class Rec {public static void main(String[] args) throws Exception {DatagramSocket ds = new DatagramSocket(9999);byte[] buffer = new byte[8192];DatagramPacket dp=new DatagramPacket(buffer, buffer.length);ds.receive(dp);
//      byte[] data=dp.getData();
//      System.out.println(data.length);System.out.println(dp.getLength()); //数据的具体长度String str=new String(buffer,0,dp.getLength());System.out.println(str);ds.close();PrintWriter pw=new PrintWriter(new FileWriter("d:/bbb.txt"));pw.println(str);pw.close();}
}
public class Send {public static void main(String[] args) throws Exception {DatagramSocket ds = new DatagramSocket();String msg = "现在几点了?";byte[] data = msg.getBytes();DatagramPacket dp = new DatagramPacket(data, data.length, InetAddress.getByName("localhost"), 9999);ds.send(dp);ds.close();}
}

UDP网络通信的收,发包相关推荐

  1. OVS 非VXLAN的收发包调用栈(二十二)

    非VXLAN的收发包调用栈 netdev_frame_hook()netdev_port_receive()ovs_vport_receive()ovs_dp_process_packet()(在查表 ...

  2. Linux 网络层收发包流程及 Netfilter 框架浅析

    本文作者:sivenzhang,腾讯 IEG 测试开发工程师 1. 前言 本文主要对 Linux 系统内核协议栈中网络层接收,发送以及转发数据包的流程进行简要介绍,同时对 Netfilter 数据包过 ...

  3. 深入理解 Cilium 的 eBPF(XDP)收发包路径:数据包在Linux网络协议栈中的路径

    Table of Contents 1 为什么要关注 eBPF? 1.1 网络成为瓶颈 1.2 eBPF 无处不在 1.3 性能就是金钱 2 eBPF 是什么? 3 为什么 eBPF 如此强大? 3. ...

  4. QualNet收发包过程分析(一)

    因项目需要,对QualNet仿真中节点间收发包行为进行了仔细研究,并不断添加一些输出以验证思路.应该说,大致是正确的,可能有些细节研究还不够透彻.对一般的应用协议开发已经够用了,如果想制作一个完整的组 ...

  5. Linux网络层收发包流程及Netfilter框架浅析

    1. 前言 本文主要对 Linux 系统内核协议栈中网络层接收,发送以及转发数据包的流程进行简要介绍,同时对 Netfilter 数据包过滤框架的基本原理以及使用方式进行简单阐述. 内容如有理解错误而 ...

  6. linux内核网络协议栈--数据包的网卡驱动收发包过程(二十五)

    网卡 网卡工作在物理层和数据链路层,主要由PHY/MAC芯片.Tx/Rx FIFO.DMA等组成,其中网线通过变压器接PHY芯片.PHY芯片通过MII接MAC芯片.MAC芯片接PCI总线 PHY芯片主 ...

  7. python 爬虫 ~ 查看收发包的情况

    DebugLog 可以用来查看收发包的情况,比较有意思,现特意记录下来: Sample: import urllib2 httpHandler = urllib2.HTTPHandler(debugl ...

  8. C语言实现UDP网络通信(附服务端和客服端完整源码)

    C语言实现UDP网络通信 服务端源码 客户端源码 服务端源码 #ifdef _WIN32 #define _WINSOCK_DEPRECATED_NO_WARNINGS #define close c ...

  9. 网卡驱动收发包过程图解

    网卡 网卡工作在物理层和数据链路层,主要由PHY/MAC芯片.Tx/Rx FIFO.DMA等组成,其中网线通过变压器接PHY芯片.PHY芯片通过MII接MAC芯片.MAC芯片接PCI总线 PHY芯片主 ...

最新文章

  1. ICML2020 | G2Gs:不依赖模板的的逆合成预测新框架
  2. 32个程序员萌翻全场的瞬间!
  3. python创建csv文件并写入-Python 读写 CSV
  4. 20172313 2017-2018-2 《程序设计与数据结构》第十周学习总结
  5. centos7如何精简容量_只需3步!教你打造精简win10,去除系统自带程序,运行更快...
  6. 马云启动“NASA”计划 为未来20年愿景研发核心科技
  7. Android ListView滑动后背景变黑
  8. 深度学习之卷积神经网络(Convolutional Neural Networks, CNN)
  9. frame越过另一个frame_一个价值2万美元的Facebook DOM XSS漏洞
  10. Django_3_路由
  11. 真正的技术大牛,可能根本不写代码
  12. 中国工业行业分类英文翻译
  13. 【深入理解计算机系统】CSAPP-实验四:ArchLab全网最详细
  14. 【Threejs效果:挖空几何体】ThreeBSP实现墙体挖洞
  15. 4399PK3366 拭目以待
  16. Debian本地源的创建及应用
  17. 2021-2027全球与中国翠绿宝石激光器市场现状及未来发展趋势
  18. 直播预告 | 小姐姐来了·冠军分享暨百度人工智能开源大赛培训
  19. RxSwift 的简单使用
  20. 渐变折射率(GRIN)多模光纤的建模

热门文章

  1. Java开发最佳实践手册全网独一份,狂神说docker进阶笔记
  2. leetcode827. 最大人工岛 - 垃圾代码,毫无优化
  3. 国开c语言程序设计形成性考核册,金工实习(铸造分).doc
  4. 一、Marlin中存储到EEPROM的设置及相关参数介绍
  5. VM虚拟机安装并使用window10
  6. 不懂算法,进大厂,真香!
  7. 关于代码重构的一些笔记
  8. Java程序包org.junit不存在问题
  9. java计算机毕业设计社区老人健康服务跟踪系统源码+系统+数据库+lw文档+mybatis+运行部署
  10. 怎样上幼儿园电脑计算机课,幼儿园电脑课堂常规要求教案