当前位置: 首页 > news >正文

网站建设课程教学改革太平洋手机

网站建设课程教学改革,太平洋手机,卖房app十大排行榜,网站加速 wordpressUDP Socket编程 一. DatagramSocket二. DatagramPacket三. InetSocketAddress四. 执行流程五. 代码示例: UDP 回显服务器 数据报套接字: 使用传输层 UDP 协议 UDP: 即 User Datagram Protocol(用户数据报协议),传输层协议。 UDP…

UDP Socket编程

  • 一. DatagramSocket
  • 二. DatagramPacket
  • 三. InetSocketAddress
  • 四. 执行流程
  • 五. 代码示例: UDP 回显服务器

数据报套接字: 使用传输层 UDP 协议

UDP: 即 User Datagram Protocol(用户数据报协议),传输层协议。

UDP的特点:

  1. 无连接
  2. 不可靠传输
  3. 面向数据报
  4. 全双工
  5. 有接收缓冲区,无发送缓冲区
  6. 大小受限:一次最多传输64k

对于数据报来说,可简单理解为,传输的数据是一块一块的,发送一块数据假如100个字节,必须一次发送,接收也必须一次接收100个字节,而不能分100次,每次接收1个字节。

一. DatagramSocket

DatagramSocket 是UDP Socket,用于发送和接收UDP数据报。

构造方法:

在这里插入图片描述

方法:

在这里插入图片描述

二. DatagramPacket

DatagramPacket是UDP Socket发送和接收的数据报。

构造方法:

在这里插入图片描述

方法:

在这里插入图片描述

构造UDP发送的数据报时,需要传入 SocketAddress ,该对象可以使用 InetSocketAddress 来创建。

三. InetSocketAddress

InetSocketAddress 是SocketAddress 的子类

构造方法:

在这里插入图片描述

四. 执行流程

对于UDP协议来说,具有无连接,面向数据报的特征,即每次都是没有建立连接,并且一次发送全部数据报,一次接收全部的数据报。对于一个服务端来说,重要的是提供多个客户端的请求处理及响应,流程如下:

在这里插入图片描述

五. 代码示例: UDP 回显服务器

服务器端代码:

class UdpEchoServer {public DatagramSocket socket;//udp的服务器需要自己指定端口号public UdpEchoServer(int port) throws SocketException {socket=new DatagramSocket(port);}public void start() throws IOException {System.out.println("启动服务器");while(true){//三个步骤//1.接受客户端发来的请求//先构造出数据报(盘子)DatagramPacket requestPacket=new DatagramPacket(new byte[1024],1024);//接收数据socket.receive(requestPacket);//输出型参数, receive 会将数据填充到 requestPacket 中//将数据报解析成一个字符串String request=new String(requestPacket.getData(),0,requestPacket.getLength(),"UTF-8");//注意这里求的长度直接用的是数据报//2.根据请求计算出响应String response=process(request);DatagramPacket responsePacket=new DatagramPacket(response.getBytes(),response.getBytes().length,//注意长度是字节数组的长度requestPacket.getSocketAddress());//注意要加上IP地址和端口,这里合起来写了//3.响应返回给客户端socket.send(responsePacket);System.out.printf("[reqIP:%s  req端口号:%d][req:%s  resp:%s]\n",requestPacket.getAddress().toString(),responsePacket.getPort(),request,response);}}/***  根据请求计算响应, 这里面只是模拟, 直接返回了原字符串*/public String process(String request){return request;}public static void main(String[] args) throws SocketException {UdpEchoServer udpEchoServer=new UdpEchoServer(9090);try {udpEchoServer.start();} catch (IOException e) {throw new RuntimeException(e);}}
}

客户端代码:

class UdpEchoClient {public DatagramSocket socket;//服务器的IP地址和端口号,传送数据时需要知道,放在数据报中public String serverIp;public int ServerPort;public UdpEchoClient(String serverIp,int serverPort) throws SocketException {socket=new DatagramSocket();//客户端利用系统随机分配的端口号,防止自己手动的端口号不能用this.serverIp=serverIp;this.ServerPort=serverPort;}public void start() throws IOException {Scanner scanner=new Scanner(System.in);while(true){//五个步骤//1.先接收用户输入的字符串System.out.println("->");String request=scanner.next();//2.构造数据报//注意数据报中除了数据内容还要包含服务器IP和端口DatagramPacket requestPacket=new DatagramPacket(request.getBytes(),request.getBytes().length, InetAddress.getByName(serverIp),ServerPort);//3.客户端发送数据报给服务器socket.send(requestPacket);//4.从服务器接收响应,并解析DatagramPacket responsePacket=new DatagramPacket(new byte[1024],1024);socket.receive(responsePacket);//解析数据String response=new String(responsePacket.getData(),0,responsePacket.getLength(),"UTF-8");//同样注意这里求长度用的也是数据报//5.打印在控制台上System.out.printf("req:%s resp:%s\n",request,response);}}public static void main(String[] args) throws IOException {//如果服务器在其他机器上就需要将IP地址和端口号更改了UdpEchoClient udpEchoClient=new UdpEchoClient("127.0.0.1",9090);udpEchoClient.start();}
}

注意:当然要先启动服务器再启动客户端啦!

好啦! 以上就是对 UDP Socket编程的讲解,希望能帮到你 !
评论区欢迎指正 !

http://www.yayakq.cn/news/524208/

相关文章:

  • 找工作哪个网站好58同城网站规划和建设的基本步骤
  • 知名网站制作全包家电维修 做网站还是搞公众号
  • 海口网站开发师招聘php免费开源建站系统
  • 老师教学生做网站吗企业宣传网站模板下载
  • 北京做网站比较好的公司wordpress免费的模板下载
  • 网站建设沧州优化科技
  • discu论坛网站模板app定制开发网站制作
  • 自建企业网站教程怎么设计一个网站
  • 滨州哪里做网站北京海淀公司注册
  • 邯郸网站建设怎么开发南头专业英文网站建设公司
  • 上海地区网站设计做网站办的营业执照用交税吗
  • 扁平化的网站有哪些冯耀宗seo视频教程
  • 广州做网站找酷爱网络龙城街道横岗街道
  • 网站搭建介绍如何做微信官方网站
  • 专门做项目代理的网站公司网站建设会计你分录
  • 如何在图片上做网站水印图建站基础
  • 有自己的域名怎么建立网站那些网站做任务能赚钱
  • 行业网站建设收费明细帝国cms企业门户网站仿站视频教程 网盘
  • 桐乡做网站编写html的软件有哪些
  • 网站内容与目录结构怎么做网页快
  • 做网站的桔子什么网站介绍怎么写范文
  • seo网站建设凡度网络北京网站建设公司
  • 建设共享经济网站的可行性浙江城乡建设信息港
  • iis配网站网站建设公司薪资
  • 如何利用网站来提升企业形象网站开发浏览器的使用
  • 做外贸网站咨询系统开发需要的技术
  • 专业的广州手机网站建设泰安网站建设公司
  • zencart网站管理 1.5免费网站模板 怎么用
  • 网站开发 页面功能布局云游戏网站在线玩
  • 曲靖网站建设公司靖网站建设旅游网站 分析