Java UDP 编程
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 编程的更多相关文章
- Java UDP网络编程 - 最简单示例
UDP也是网络通讯中的一个重要协议,与TCP区别可参见浅谈TCP/IP 和 UDP的区别,本文就对Java UDP通讯做一个简单例子介绍 服务端: package wyf; import java.i ...
- java 网络编程-tcp/udp
--转自:http://blog.csdn.net/nyzhl/article/details/1705039 直接把代码写在这里,解释看这里吧:http://blog.csdn.net/nyzhl/ ...
- 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤
福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 Java全栈大联盟 ...
- Java网络编程UDP通信原理
前言 继续今天我们的Java网络编程--TCP和UDP通信 一.TCP和UDP概述 传输层通常以TCP和UDP协议来控制端点与端点的通信 TCP UDP 协议名称 传输控制协议 用户数据包协议 是 ...
- java socket编程(li)
一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以 ...
- Java 网络编程学习总结
新手一枚,Java学习中,把自己学习网络编程的知识总结一下,梳理下知识,方便日后查阅,高手莫进. 本文的主要内容: [1] 网络编程认识 [2] TCP/IP编程 ...
- java socket编程(网络编程)
一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可 ...
- Java Socket编程
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...
- Java Socket编程题库
一. 填空题 ___ IP地址____用来标志网络中的一个通信实体的地址.通信实体可以是计算机,路由器等. 统一资源定位符URL是指向互联网"资源"的指针,由4部分组成:协议 ...
随机推荐
- Linux Shell中的数组及遍历 转
转自:http://www.linuxidc.com/Linux/2011-09/42929.htm 在Linux下使用shell的时候,为方便起见,偶尔会用到一下数组.数组的申明方式是: array ...
- 键盘弹起及lab时的动态计算高度 --董鑫
1.键盘抬起或掉下时,动态计算高度 2.动态计算Label的高度 计算的高度时,numberOfLines必须设置为0: 2.1 ios7.0之后 2.2 iOS 7.0之前
- 《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)
1.简介 今天这一篇,宏哥主要讲解:利用WebDriver 提供可以读取.添加和删除cookie 信息的相关操作方法.验证浏览器中是否存在某个cookie.原因是:因为基于真实的cookie 的测试是 ...
- Jetpack的ViewModel与LiveData
本文基于SDK 29 一.ViewModel与LiveData的作用: 1.viewModel: 数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据. 2.LiveDa ...
- HashTable源码学习
一.介绍 1.HashMap和HashTable的区别 1.相同点 二者都实现了Map接口. 底层都是哈西表 2.不同点 Hashtable继承自Dictionary类,而HashMap继承自Abst ...
- MXNet源码分析 | Gluon接口分布式训练流程
本文主要基于MXNet1.6.0版本,对Gluon接口的分布式训练过程进行简要分析. 众所周知,KVStore负责MXNet分布式训练过程中参数的同步,那么它究竟是如何应用在训练中的呢?下面我们将从G ...
- 微信小程序常见两种登陆注册方式(一)
普通登录注册以及用户授权登陆 普通登陆注册 概述 此功能的实现简单的借助了微信小程序的云开发,具体在哪里使用,我会标出来.对于用户名.账号.密码都做了简单的校验.主要练手功能的实现,样式只做了简单的编 ...
- [虚拟化]虚拟机 XML 配置
虚拟机 XML 配置示例 虚拟机的 XML 配置(也称为 域 XML )决定虚拟机的设置和组件.下表显示了虚拟机(VM)的 XML 配置示例并解释了其内容. 要获取虚拟机的 XML 配置,您可以使用 ...
- Perforce 使用建议
前言 楼主从事Unreal 游戏开发工作,使用VisualStudio 2019 /Rider/VisualStudio Code 开发过,使用Perforce版本管理对代码和资源进行管理. 主要想分 ...
- MethodImpl 特性
5,MethodImpl 特性 此特性在 System.Runtime.CompilerServices 命名空间中,指定如何实现方法的详细信息. 内联函数使用方法可参考 https://www.wh ...