博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于UDP协议的Socket通信
阅读量:4671 次
发布时间:2019-06-09

本文共 2410 字,大约阅读时间需要 8 分钟。

服务器端

package demo5;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;/** * 服务器端,实现基于UDP的用户登录 *@ClassName UDPServer *@Author DiYun *@Version 1.0 **/public class UDPServer {    public static void main(String[] args) throws IOException {        //1.创建服务器端DatagramSocket  指定端口        DatagramSocket socket = new DatagramSocket(8800);        //2.创建数据包,用于接收客户端发送的数据        byte[] data = new byte[1024]; //创建字节数组,指定接收的数据包的大小        DatagramPacket packet = new DatagramPacket(data, data.length);        System.out.println("服务端已启动等待客户端发送数据**********************");        //3.接收客户端发送的数据        socket.receive(packet); //此方法在接收到数据包之前会一直阻塞        //4.读取数据        String info = new String(data, 0, packet.getLength());        System.out.println("我是服务器,客户端说:" + info);        /**         * 向客户端响应数据         */        InetAddress address = packet.getAddress();        int port = packet.getPort();        byte[] data2 = "欢迎您".getBytes();        //2.创建数据包,包含响应的数据信息        DatagramPacket packet2 = new DatagramPacket(data2, data2.length, address, port);        //3.响应客户端        socket.send(packet2);        //关闭资源        socket.close();    }}

 

 

客户端

package demo5;/** * @author ydy * Create By ydy on 2019/1/24 */import java.io.IOException;import java.net.*;/** * 基于UDP 客户端 *@ClassName UDPClient *@Description TODO *@Author DiYun *@Date 2019/1/24 20:01 *@Version 1.0 **/public class UDPClient {    public static void main(String[] args) throws IOException {        //1.定义服务器的地址,端口号,数据        InetAddress address = InetAddress.getByName("localhost");        int potr = 8800;        byte[] data = "用户名:admin; 密码: 123".getBytes();        //2.创建数据包,包含发送的数据信息        DatagramPacket packet = new DatagramPacket(data, data.length, address, potr);        //3.创建DatagramSocket对象        DatagramSocket socket = new DatagramSocket();        //4.向服务端发送数据包        socket.send(packet);        /**         * 接收服务器端响应的数据         */        //1.创建数据包,用于接收服务器端响应的数据        byte[] data2 = new byte[1024];        DatagramPacket packet2 = new DatagramPacket(data2, data2.length);        //2.接收服务器响应的数据        socket.receive(packet2);        //3.读取数据        String reply = new String(data2, 0, packet2.getLength());        System.out.println("我是客户端,服务器说: " + reply);        //4.关闭资源        socket.close();    }}

 

注意:必须首先启动服务器,再启动客户端

 

转载于:https://www.cnblogs.com/yccmelody/p/10316699.html

你可能感兴趣的文章
二维数组中最大连通子数组
查看>>
java 正则表达式-忽略大小写与多行匹配
查看>>
mac 上亚马逊密钥登录
查看>>
css选择器中:first-child与:first-of-type的区别
查看>>
nopcommerce 二次开发
查看>>
NHibernate入门实例
查看>>
IBM_DS5020磁盘阵列做raid、热备并把盘阵挂在服务器上的步骤
查看>>
svg制作风车旋转
查看>>
《软件工程》课堂作业:返回一个整数数组中最大字数组的和
查看>>
ACM 美素数 (没AC)
查看>>
Sqlserver学习研究
查看>>
VTK图形模型主要对象
查看>>
c# Linq实现 获得某一个路径下所有文件的名(不含扩展名)
查看>>
动静态广播的区别
查看>>
前缀式计算(前缀表达式)
查看>>
Linux常用命令大全
查看>>
添加删除tag
查看>>
ARM学习篇 中断定时理解
查看>>
卷积神经网络在tenserflow的实现
查看>>
[STL]用法
查看>>