Socket之UDP通信
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通信相关推荐
- C# 通过socket实现UDP 通信
本文章已收录于: UDP不属于面向连接的通信,在选择使用协议的时候,选择UDP必须要谨慎.在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重.但是由于UDP的特性:它不属于连接型协 ...
- C# Socket之UDP通信
Socket之间的通信可以类比生活中打电话的案例.任何用户在通话之前,首先要占有一部电话机,相当于申请一个Socket,同时要知道对方的号码,相当于对方有一个固定的Socket,然后向对方拨号呼叫,相 ...
- c语言广播程序,C语言socket编程---udp通信及广播
上篇实现了TCP通信的例子.由于项目中需要一个服务器向多台客户端发送消息. 通过udp这种无连接的通信,将client.c增加一句 /* 设置通讯方式对广播,即本程序发送的一个消息,网络上所有主机均可 ...
- python中socket与UDP使用与通信详解
网络层的"ip地址"可以唯一标识网络中的主机,而传输层的"协议+端口"可以唯一标识主机中的应用进程(进程).这样利用ip地址+协议+端口就可以标识 ...
- Qt使用UDp通信、套接字socket的成员函数bind()的作用
一. 所谓bind,就是指绑定本地接受端口. 指定ip,是为了分辨多ip主机.在有服务端和客户端的UDP中,bind是服务端调用的函数,绑定的是服务端的IP,假设服务端有多个网卡,即 ...
- asp.core api 通过socket和服务器通信发送udp_python socket之TCP/UDP
#coding=utf-8 # socket #网络中进程之间通信:网络层的"ip地址"可以唯一标识网络中的主机,而传输层的"协议+端口"可以唯一标识主机中的应 ...
- [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例
很早以前研究过C#和C++的网络通信,参考我的文章: C#网络编程之Tcp实现客户端和服务器聊天 C#网络编程之套接字编程基础知识 ...
- python socket模块实现udp通信_Python基于socket模块实现UDP通信功能示例
Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端 import sock ...
- 2-3:套接字(Socket)编程之UDP通信,sockaddr,sockaddr_in,recvfrom,sendto
文章目录 一:回顾 二:彻底了解套接字和struct socket结构 (1)一切皆文件-文件描述符-套接字描述符 (2)struct socket结构 A:struct socket结构体作用 B: ...
最新文章
- 关于FTP上传方法 (by Liang)
- error: ‘__declspec‘ attributes are not enabled; use ‘-fdeclspec‘ or ‘-fms-extensions‘ to enabl
- php中调用脚本,PHP中如何调用RScript脚本(附代码)
- javaweb k8s_阿里云部署K8Sweb项目
- #pragma pack(push,1) #pragma pack(pop)
- Oracle SQL Developer 添加SQLServer 和Sybase 连接 .
- typeScript模块四
- vc++ 关于 指针操作
- ReduceTask工作机制图解
- [Zju 2112][逆序对统计] 线段树(四) {线段树扩展}
- Linux宝库快讯 | OpenStack中国日更名OpenInfra中国日
- 如何开发一个网页版的SQL查询工具
- 有哪些没有时长限制的网课录屏软件?
- vue引入外部js文件(第三方js工具或者jq库)
- MybatisPlus代码生成器报错AutoGenerator()‘ has private access in ‘com.baomidou.
- 凑巧,电脑的双系统删除了2345的残留服务和缓存!
- UConn DataMining Math5671 课程小记(2)
- iPhone X适配 最简单粗暴的
- javascript停止页面所有计时器
- Android之Parcel和Parcelable
热门文章
- postgresql 13 数据库 sequence 的 maxvalue 最大值是多少?
- 16. Flash Xss进阶 [ExternalInterface.call第二个参数]
- fastTime格式化时间
- 无法启动计算机上的服务器,服务器不能启动的几种解决方案
- Linux——什么是防火墙?防火墙的种类及各自的特点如何?
- Java虚拟机-经典垃圾回收器
- 我和高中时喜欢的女孩子在一起了
- 乌贼的做法 乌贼怎么做好吃
- 安卓模拟器Android SDK 4.0.3 R2安装完整图文教程
- JQuery select各种事件