Socket之UDP通信

UDP通信原理:
UDP协议是一种不可靠的网络协议,它在通信两端各自建立一个Socket对象,但是这两个Socket对象只是发送和接收数据的对象,因此基于UDP协议的通信双方,是没有所谓客户端和服务端的概念。Java提供了DatagramSocket类来作为基于UDP协议的Socket。(Socket又叫套接字)

UDP发送数据:
1、创建发送端的Socket对象(DatagramSocket)
2、创建数据,并把数据打包
3、使用DatagramSocket对象发送数据。
4、关闭发送端

UDP发送数据代码:

public class Send {public static void main(String[] args) throws IOException {//创建发送端的Socket对象DatagramSocket socket = new DatagramSocket();//创建数据byte[] bytes = "hello,UDP,我来了".getBytes();//把数据打包发送//参数1:存储数据的数组,参数2:数据长度,参数3:InetAddress对象,代表一个主机,参数4:端口号DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName("192.168.219.1"), 10086);//使用Socket对象将打包好的数据发送socket.send(dp);//关闭此发送端数据表套接字socket.close();}
}

注意上方ip地址是内网ip,不是外网ip哦,不知道自己内网ip的同学可以进入CMD 通过ipconfig指令获取哦


UDP接收数据:
1、创建接收端的Socket对象(DatagramSocket)
2、创建一个数据包,用于接收数据
3、调用DatagramSocket方法接收数据
4、解析数据并显示
5、关闭接收端

public class Receive {public static void main(String[] args) throws IOException {//创建接收端的Socket对象,并将其绑定在本机地址的指定端口DatagramSocket socket = new DatagramSocket(10086);//创建一个数据包,用于接收数据byte[] bytes = new byte[1024];DatagramPacket dp = new DatagramPacket(bytes,bytes.length);//调用socket对象的方法接收数据socket.receive(dp);//解析数据包,并将其打印在控制台byte[] data = dp.getData();String s = new String(data,0,dp.getLength());System.out.println(s);socket.close();}
}

Socket之UDP通信相关推荐

  1. C# 通过socket实现UDP 通信

     本文章已收录于: UDP不属于面向连接的通信,在选择使用协议的时候,选择UDP必须要谨慎.在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重.但是由于UDP的特性:它不属于连接型协 ...

  2. C# Socket之UDP通信

    Socket之间的通信可以类比生活中打电话的案例.任何用户在通话之前,首先要占有一部电话机,相当于申请一个Socket,同时要知道对方的号码,相当于对方有一个固定的Socket,然后向对方拨号呼叫,相 ...

  3. c语言广播程序,C语言socket编程---udp通信及广播

    上篇实现了TCP通信的例子.由于项目中需要一个服务器向多台客户端发送消息. 通过udp这种无连接的通信,将client.c增加一句 /* 设置通讯方式对广播,即本程序发送的一个消息,网络上所有主机均可 ...

  4. python中socket与UDP使用与通信详解

           网络层的"ip地址"可以唯一标识网络中的主机,而传输层的"协议+端口"可以唯一标识主机中的应用进程(进程).这样利用ip地址+协议+端口就可以标识 ...

  5. Qt使用UDp通信、套接字socket的成员函数bind()的作用

    一. 所谓bind,就是指绑定本地接受端口.          指定ip,是为了分辨多ip主机.在有服务端和客户端的UDP中,bind是服务端调用的函数,绑定的是服务端的IP,假设服务端有多个网卡,即 ...

  6. asp.core api 通过socket和服务器通信发送udp_python socket之TCP/UDP

    #coding=utf-8 # socket #网络中进程之间通信:网络层的"ip地址"可以唯一标识网络中的主机,而传输层的"协议+端口"可以唯一标识主机中的应 ...

  7. [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例

    很早以前研究过C#和C++的网络通信,参考我的文章:                  C#网络编程之Tcp实现客户端和服务器聊天                 C#网络编程之套接字编程基础知识   ...

  8. python socket模块实现udp通信_Python基于socket模块实现UDP通信功能示例

    Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端 import sock ...

  9. 2-3:套接字(Socket)编程之UDP通信,sockaddr,sockaddr_in,recvfrom,sendto

    文章目录 一:回顾 二:彻底了解套接字和struct socket结构 (1)一切皆文件-文件描述符-套接字描述符 (2)struct socket结构 A:struct socket结构体作用 B: ...

最新文章

  1. 关于FTP上传方法 (by Liang)
  2. error: ‘__declspec‘ attributes are not enabled; use ‘-fdeclspec‘ or ‘-fms-extensions‘ to enabl
  3. php中调用脚本,PHP中如何调用RScript脚本(附代码)
  4. javaweb k8s_阿里云部署K8Sweb项目
  5. #pragma pack(push,1) #pragma pack(pop)
  6. Oracle SQL Developer 添加SQLServer 和Sybase 连接 .
  7. typeScript模块四
  8. vc++ 关于 指针操作
  9. ReduceTask工作机制图解
  10. [Zju 2112][逆序对统计] 线段树(四) {线段树扩展}
  11. Linux宝库快讯 | OpenStack中国日更名OpenInfra中国日
  12. 如何开发一个网页版的SQL查询工具
  13. 有哪些没有时长限制的网课录屏软件?
  14. vue引入外部js文件(第三方js工具或者jq库)
  15. MybatisPlus代码生成器报错AutoGenerator()‘ has private access in ‘com.baomidou.
  16. 凑巧,电脑的双系统删除了2345的残留服务和缓存!
  17. UConn DataMining Math5671 课程小记(2)
  18. iPhone X适配 最简单粗暴的
  19. javascript停止页面所有计时器
  20. Android之Parcel和Parcelable

热门文章

  1. postgresql 13 数据库 sequence 的 maxvalue 最大值是多少?
  2. 16. Flash Xss进阶 [ExternalInterface.call第二个参数]
  3. fastTime格式化时间
  4. 无法启动计算机上的服务器,服务器不能启动的几种解决方案
  5. Linux——什么是防火墙?防火墙的种类及各自的特点如何?
  6. Java虚拟机-经典垃圾回收器
  7. 我和高中时喜欢的女孩子在一起了
  8. 乌贼的做法 乌贼怎么做好吃
  9. 安卓模拟器Android SDK 4.0.3 R2安装完整图文教程
  10. JQuery select各种事件