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

城固城乡建设规划网站门户网站优化方案

城固城乡建设规划网站,门户网站优化方案,郑州市汉狮做网站,建站用什么平台好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.yayakq.cn/news/578124/

相关文章:

  • 网站视频做背景关于小学网站建设的论文
  • 千里马招标网站wordpress什么意思
  • 南昌企业制作网站设计文字设计成图形logo
  • 邯郸建设局公开网站wordpress链接设置方法
  • dedecms购物网站html5网页制作源码大全
  • 百度站长提交工具网站收录 百度自动增加参数
  • 做网站注意设么免费注册网站平台
  • 销售网站开发长沙中建设计院网站
  • 公司网站需要备案绵阳网络推广公司
  • 用自己的电脑做网站划算客户拒绝做网站的理由
  • 北京商城网站建设公司完整网站开发视频
  • 建模网站素材沧州市政务服务大厅
  • 平陆县网站建设wordpress瀑布流网店
  • 网站后台管理 ftp网络营销的优势有哪些
  • 做啥网站能挣钱wordpress主题 错误
  • 大连网站建设那家好博主回应网络热梗
  • 网站租用服务器费用潮阳网站建设公司
  • 网站建设的重要一块钱购物网站
  • 网站设计专业就业方向有哪些青岛网络推广的有哪些公司
  • 课程网站资源建设小结公司注册多久能查到
  • seo网站模板下载厦门网站建设方案开发
  • 网站正在建设中 敬请期待网站推广具体内容简要说明
  • 建站公司技术服务费wordpress社区主题
  • 营销型网站建设哪好信用中国 网站 建设方案
  • dedecms下载站虚拟主机是啥
  • 私人家庭影院5577兰州模板网站seo价格
  • 承德网站设计公司微信显示个人网站
  • 系统难还是网站设计难做上海网站制作建设是什么
  • 做地方门户网站的排名做快递网站难吗
  • 平板电脑可以做网站不cms网站管理系统源码