• 使用UDP进行数据发送的实例一


    首先如果TCP学过以后,再看UDP进行数据传输也是大同小异的,只是用到的类不同

    UDP进行传输需要DataSocket和Datapacket类,Datapacket叫数据报,每一个数据报不能大于64k,都记录着数据信息,发送端的IP、端口号,

    以及要发送到的接收端的IP、端口号。

    UDP进行传输是将数据全部打包,然后一起发过去,容易造成数据丢失,但速度较快,比如要下载一个电影,缺失几侦并没有什么影响,但需要快速下载,这个时候可以选择UDP进行传输,所谓各有所长,具体选择那种方式还是要看具体需要。

    接下来附加一个UDP进行文字传输,然后接收端打印到控制台上

     1 package com.UDP.java;
     2 
     3 import java.io.IOException;
     4 import java.net.DatagramPacket;
     5 import java.net.DatagramSocket;
     6 import java.net.InetAddress;
     7 import org.junit.Test;
     8 
     9 public class TestUDP {
    10     // 发送端
    11     @Test
    12     public void send() {
    13         DatagramSocket ds = null;
    14         try {
    15             ds = new DatagramSocket();
    16             // 创建一个数据报,每一个数据报不能大于64k,都记录着数据信息,发送端的IP、端口号,以及要发送到
    17             // 的接收端的IP、端口号。
    18             byte[] b = "我是发送端".getBytes();
    19             DatagramPacket pack = new DatagramPacket(b, 0, b.length, 
    20                     InetAddress.getByName("192.168.1.101"), 9090);
    21             ds.send(pack);
    22         } catch (IOException e) {
    23             e.printStackTrace();
    24         } finally {
    25             if (ds != null) {
    26                 ds.close();
    27             }
    28         }
    29     }
    30 
    31     // 接收端
    32     @Test
    33     public void receive() {
    34         DatagramSocket ds = null;
    35         try {
    36             ds = new DatagramSocket(9090);
    37             byte[] b = new byte[1024];
    38             DatagramPacket pack = new DatagramPacket(b, 0, b.length);
    39             ds.receive(pack);
    40             String str = new String(pack.getData(), 0, pack.getLength());
    41             System.out.println(str);
    42         }catch (IOException e) {
    43             e.printStackTrace();
    44         }
    45         finally{
    46             if(ds != null){
    47                 ds.close();
    48             }
    49         }
    50     }
    51 }
  • 相关阅读:
    数据类型及用法
    NFS与SSH
    nginx服务,nginx反向代理
    rpm软件包管理
    磁盘分区,文件系统,软链接和硬链接,内存和进程管理
    Linux常用命令,文件目录和权限管理
    操作系统与网络协议(day3)
    计算机基础之硬件简介(Day2)
    QT写串口
    485传输
  • 原文地址:https://www.cnblogs.com/gode/p/5812013.html
Copyright © 2020-2023  润新知