1.客户端代码

 1 import java.io.IOException;
2 import java.net.DatagramPacket;
3 import java.net.DatagramSocket;
4 import java.net.InetAddress;
5
6 public class UDPClient {
7 public static void main(String[] args) throws IOException {
8 //1.定义服务器的地址、端口号,数据
9 InetAddress address = InetAddress.getByName("localhost");
10 int port = 8800;
11 byte[] data = "用户名:admin; 密码:123".getBytes();
12 //2.创建数据报,包含发送的数据信息
13 DatagramPacket packet = new DatagramPacket(data, data.length,address,port);
14 //3.创建DatagramSocket 对象
15 DatagramSocket socket = new DatagramSocket();
16 //4.向服务器端发送数据报
17 socket.send(packet);
18 /**
19 * 接收服务器端响应的数据
20 */
21 //1.创建数据报,用于接收服务器端响应的数据
22 byte[] data2 = new byte[1024];
23 DatagramPacket packet2 = new DatagramPacket(data2, data2.length);
24 //2.接收服务器响应的数据
25 socket.receive(packet2);
26 //3.读取数据
27 String reply = new String(data2, 0, packet2.getLength());
28 System.out.println("我是客户端,我收到的服务器信息:" + reply);
29 //4.关闭资源
30 socket.close();
31 }
32 }

2.服务器端代码

 1 import java.io.IOException;
2 import java.net.DatagramPacket;
3 import java.net.DatagramSocket;
4 import java.net.InetAddress;
5 /**
6 *
7 * UDP 服务器端
8 *
9 */
10 public class UDPServer {
11 public static void main(String[] args) throws IOException {
12 //1.创建服务器端DatagramSocket,指定端口
13 DatagramSocket socket = new DatagramSocket(8800);
14 //2.创建数据报,用于接收客户端发送的数据
15 byte[] data = new byte[1024];//创建字节数组,指定接收的数据包的大小。
16 DatagramPacket packet = new DatagramPacket(data, data.length);
17 //3.接收客户端发送的数据
18 System.out.println("****服务器端已经启动,等待客户端发送信息");
19 socket.receive(packet);//此方法在接收到数据报之前会一直阻塞
20 //4.读取数据
21 String info = new String(data, 0, packet.getLength());
22 System.out.println("我是服务器,客户端说:" + info);
23
24 /**
25 * 向客户端响应数据
26 */
27 //1.定义客户端的地址、端口号,数据
28 InetAddress address = packet.getAddress();
29 int port = packet.getPort();
30 byte[] data2 = "欢迎您!".getBytes();
31 //把数据发送给客户端
32 DatagramPacket packet2 = new DatagramPacket(data2, data2.length,address,port);
33 socket.send(packet2);
34 //4.关闭socket
35 socket.close();
36 }
37 }

Java UDP 编程的更多相关文章

  1. Java UDP网络编程 - 最简单示例

    UDP也是网络通讯中的一个重要协议,与TCP区别可参见浅谈TCP/IP 和 UDP的区别,本文就对Java UDP通讯做一个简单例子介绍 服务端: package wyf; import java.i ...

  2. java 网络编程-tcp/udp

    --转自:http://blog.csdn.net/nyzhl/article/details/1705039 直接把代码写在这里,解释看这里吧:http://blog.csdn.net/nyzhl/ ...

  3. 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  4. Java网络编程UDP通信原理

    前言 继续今天我们的Java网络编程--TCP和UDP通信 一.TCP和UDP概述 传输层通常以TCP和UDP协议来控制端点与端点的通信   TCP UDP 协议名称 传输控制协议 用户数据包协议 是 ...

  5. java socket编程(li)

    一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以 ...

  6. Java 网络编程学习总结

    新手一枚,Java学习中,把自己学习网络编程的知识总结一下,梳理下知识,方便日后查阅,高手莫进. 本文的主要内容: [1]    网络编程认识                [2]  TCP/IP编程 ...

  7. java socket编程(网络编程)

    一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...

  8. Java Socket编程

    Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...

  9. Java Socket编程题库

    一.    填空题 ___ IP地址____用来标志网络中的一个通信实体的地址.通信实体可以是计算机,路由器等. 统一资源定位符URL是指向互联网"资源"的指针,由4部分组成:协议 ...

随机推荐

  1. c++ 堆栈和内存管理

    stack(栈),heap(堆) Stack:是存在于某作用域(scope)的一个内存空间(memory space).例如当你调用函数,函数本身即会形成一个stack用来放置它所接收的参数,返回地址 ...

  2. Selenium对应版本

    下面是谷歌浏览器与chromedriver的版本对应关系,供参考: ChromeDriver v2.45 (2018-12-10)----------Supports Chrome v70-72Chr ...

  3. Solution -「CF 840C」On the Bench

    \(\mathcal{Description}\)   Link.   给定数列 \(\{a_n\}\),求排列 \(\{p_n\}\) 的个数,使得 \((\forall i\in[1,n))(a_ ...

  4. 深入MySQL(四):MySQL的SQL查询语句性能优化概述

    关于SQL查询语句的优化,有一些一般的优化步骤,本节就介绍一下通用的优化步骤. 一条查询语句是如何执行的 首先,我们如果要明白一条查询语句所运行的过程,这样我们才能针对过程去进行优化. 参考我之前画的 ...

  5. spring boot全局配置文件优先级

    前两篇介绍的application配置文件,即为spring boot全局配置文件.那么spring boot加载配置文件的时候,怎么确定加载哪个目录下哪个文件呢? spring boot默认的配置文 ...

  6. 日行一算(Table-文字输出)

    题目 +---+---+---+ | | | | +---+---+---+ | | | | +---+---+---+ | | | | +---+---+---+ 题目描述 上图是一个Mysql查询 ...

  7. [题解]UVA10986 Sending email

    链接:http://vjudge.net/problem/viewProblem.action?id=24941 描述:n个点,m条边的无向图,寻找从S到T的最短路. 思路:基础的单源点最短路 用Di ...

  8. 【信而泰】网络损伤仿真,为5G应用保驾护航

    5G,绝对是今年最热门的话题!2019年6月6日,工信部正式向中国电信.中国移动.中国联通.中国广电发放5G商用牌照,中国正式进入5G商用元年.5G不仅仅是一次通信技术的升级,更是开启了一个新的时代. ...

  9. C语言memcpy()函数和memmove()函数

    C语言memcpy()函数和memmove()函数 关于 memcpy() 函数,请先看链接. memcpy() 函数和 memmove() 函数的函数原型如下: void* memcpy(void ...

  10. 【C# 练习】通过ZoomGame这个案例加强对 反射 插件 特性的认识

    游戏情景设定: 有一个游戏机,里面出现几种动物让儿童选择.选择完动物后,在输入数值让动物叫几次. 动物类型以插件的形势存在,可以外包给其他人开发,并提供了开发接口AnimalTool.SDK.dll. ...