全球主机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 100|回复: 0

香港服务器租用搭建Java网络编程之UDP协议数据传输服务器

[复制链接]
发表于 2020-3-5 17:18:59 | 显示全部楼层 |阅读模式
香港服务器租用搭建Java网络编程之UDP协议数据传输服务器


需要咨询以下联系方式
联系人:銳輝(香港)科技 敏敏
扣扣:3007425289/2853898501
电话:18316411879


一、UDP数据传输方式

数据传递采用数据包方式传递,所有的数据要进行打包操作,并且没有对应的客户端服务器概念,有且只有发送段和接收端。

Socket 套接字
数据需要进行传递操作,在数据传递的两台计算机当中必须有对应的Socket。这里采用UDP协议,那么必须有一个UDP协议的Socket

DatagramSocket();
        创建一个发送端UDP协议Socket对象
DatagramSocket(int port);
        创建一个接收端UDP协议的Socket对象,这里需要【监听】指定端口

发送端数据包的打包方法:

DatagramPacket DatagramPacket(byte[] buf, int length, InetAddress address, int port);
        buf: 需要传递数据的字节数组
        length:是当前字节数组中数据容量字节数
        address:接收端IP地址对象
        port: 接收端对应的端口号

接收端数据包接收方式,需要准备一个空的数据包

DatagramPacket DatagramPacket(byte[] buf, int length);
        buf: 字节缓冲数组,通常是1024整数倍
        length: 当前字节缓冲数组的容量

二、发送端

1、流程

1. 创建UDP服务器对应的发送端Socket
2. 准备对应数据包,需要带有指定数据
3. 发送数据 send
4. 关闭UDP发送端

2、代码

public class SenderDemo {
        public static void main(String[] args) throws IOException {
                System.out.println("发送端启动");
                // 创建对应的Socket
                DatagramSocket socket = new DatagramSocket();
               
                // 准备数据包
                byte[] bytes = "来自发送端的数据".getBytes();
                DatagramPacket packet = new DatagramPacket(bytes, bytes.length,
                                InetAddress.getLocalHost(), 8848);
               
                // 发送数据包
                socket.send(packet);
               
                // 关闭UDP发送端
                socket.close();
        }
}       
三、接收端

1、流程

1. 打开UDP服务,并且监听指定端口
2. 创建新的空数据包
3. 通过Socket接收数据
4. 关闭UDP服务接收端

2、代码

public class ReceiveDemo {
        public static void main(String[] args) throws IOException {
                // 创建Socket监听端口
                DatagramSocket socket = new DatagramSocket(8848);
               
                // 准备空数据包
                byte[] buf = new byte[1024];
                DatagramPacket packet = new DatagramPacket(buf, buf.length);
               
                // 接收数据
                socket.receive(packet);
               
                // 确定接收到的字节长度
                int length = packet.getLength();
               
                System.out.println(new String(buf, 0, length));
               
                // 关闭socket
                socket.close();
        }
}
四、UDP数据传递丢失问题

当使用UDP协议进行数据传递时,有可能在传递内容较大时发生数据丢失的问题。发生这种情况的原因有很多,例如:

网络不够好,稳定性不行,带宽不够
电脑性能不好
点赞 3



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|全球服务器论坛

GMT+8, 2025-1-21 01:01 , Processed in 1.575603 second(s), 19 queries , File On.

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表