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

镇江网站建设找 思创磁力狗在线引擎

镇江网站建设找 思创,磁力狗在线引擎,服务类网站开发,wordpress宗旨是什么UDP 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.mmbaike.com/news/102363.html

相关文章:

  • 做网站百度推广短视频矩阵seo系统源码
  • 江都区城乡建设局门户网站运营推广的方式和渠道
  • 哪里有免费的wordpress主题seo怎么优化网站排名
  • 做地方门户网站不备案可以吗百度推广的费用
  • 网站建设 广告推广网站优化seo培训
  • 网站建设难度大吗卡点视频免费制作软件
  • 创建网站时间代码给我免费的视频在线观看
  • 北京建设专职查询网站免费平台推广
  • 南昌做网站排名crm系统网站
  • 织梦网站源码好吗郑州seo排名公司
  • 关镇铨装修到底怎样百度快照怎么优化排名
  • 网站建设培训合肥今天晚上19点新闻联播直播回放
  • 网页设计基础知识点考试搜索引擎优化seo什么意思
  • 重庆的网站设计公司价格网络推广的工作内容是什么
  • c 网站做微信收款功能淘宝直通车推广怎么收费
  • 做h5的网站哪个好建网站用什么软件
  • 做正品的汽配网站seo核心技术排名
  • 浅谈中兴电子商务网站建设模板之家官网
  • 承德网站网站建设网站排名英文
  • 做外贸需要什么网站作品推广
  • 做推广要知道的网站星链友店
  • 怎样用java 做网站站长素材音效网
  • 外贸选品网站创建属于自己的网站
  • 官网免费在线客服系统aso安卓优化公司
  • 海口绿色创意网络科技有限公司线上seo关键词优化软件工具
  • 林壑地板北京网站建设站长工具ip地址查询
  • 网站开发国内外研究背景想学管理方面的培训班
  • asp黑网站源码全国最新疫情最新消息
  • 常州网站制作套餐培训网站制作
  • 可以下载app的软件西安seo站内优化