网络编程(三)UDP编程

概述

在UDP通信协议下,两台计算机之间进行数据交互,并不需要先建立连接,客户端直接往指定的IP和端口号上发送数据即可,但是它并不能保证数据一定能让对方收到。

java.net.DatagramSocket 和 java.net.DatagramPacket 是UDP编程中使用到的俩个类,客户端和服务器端都使用这个俩类。
其中
java.net.DatagramSocket 负责接收和发送数据
java.net.DatagramPacket负责封装要发送的数据和接收到的数据

代码实现

先启动服务器端

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;public class ServerUDP {public static void main(String[] args) {//创建字节数组,用来接收数据byte[] buf = new byte[1024];int port = 9999; //端口号DatagramSocket socket = null;DatagramPacket packet = null;//创建socket对象,指定监听的端口号try {socket = new DatagramSocket(port);//创建packet,接收数据,指定字节数组buf接收数据,最多接收buf.length长度的数据packet = new DatagramPacket(buf, 0, buf.length);System.out.println("服务器启动,等待客户端发送数据过来");//使用socket接收数据,数据存放在packet对象的buf数组中//socket中的receive方法会阻塞线程,等待客户端发送数据socket.receive(packet);//将收到的数据转为字符串输出packet.getLength是数据包的大小System.out.println("服务器接收到的数据为" + new String(buf,0, packet.getLength()));} catch (IOException e) {e.printStackTrace();} finally {if(socket != null){socket.close();}}}
}

再启动客户端

import java.io.IOException;
import java.net.*;public class ClientUDP {public static void main(String[] args) {String ip = "127.0.0.1"; //服务器ip地址int port = 9999; //端口号DatagramSocket socket = null;DatagramPacket packet = null;//将要传送的字符串类型数据转换为字节数组byte[] buf = "hello world".getBytes();try {//socket负责发送数据socket = new DatagramSocket();//打包好数据报,指定要发送到的ip和端口号packet = new DatagramPacket(buf, 0,buf.length, InetAddress.getByName(ip),port);//发送数据给服务器端socket.send(packet);System.out.println("客户端发送数据完毕!");} catch (IOException e) {e.printStackTrace();} finally{//关流if(socket != null){socket.close();}}}
}

java基础:网络编程(三)UDP编程相关推荐

  1. JAVA基础 网络编程

    JAVA基础 网络编程 网络我们每天都会用到的,在我们生活中占的地位也在不断的提高,我们下面就简单了解下网络编程的内容. 想要学习网络编程,首先就需要了解网络编程包含哪些内容. 网络编程包括 IP节点 ...

  2. Java基础【之】面向对象编程(封装、继承(extends、方法重写、super)、多态(动态绑定、重载/重写)、代码实现)

    Java基础[之]面向对象编程(封装.继承.多态.代码实现) 1.封装 2.继承 2.1.extends 2.2.方法重写 2.3.super 3.多态 3.1.对象的多态.方法的多态 3.2.动态绑 ...

  3. Java基础语法(三)——运算符

    文章目录 Java基础语法(三)--运算符 一.算术运算符 1.基本四则运算符 (1)练习 (2)注意事项 2.复合运算符 3.自增自减操作符 二.关系运算符 三.逻辑操作符 1.逻辑与&&a ...

  4. Java网络编程(网络基础(IP端口号网络通信协议)、TCP编程、UDP编程和URL编程原理以及常用方法的实例)

    网络编程 网络基础概述 计算机网络:   把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信息.共享硬件.软件.数据信息等 ...

  5. 学习笔记-java基础-网络编程

    刚在培训机构学习完JAVA基础和WEB,感觉边学边忘.就把这作为记忆的笔记,我也不知道要不要记笔记,写在本子上太耗费时间了. 一.要想实现网络通信,首先要解决两个问题: ①:如何从网络中定位到一台或多 ...

  6. Java基础(网络编程基础)

    1.软件结构 C/S:客户端和服务器(QQ.微信) B/S:浏览器和服务器(火狐.IE.谷歌) 2.网络通信协议 网络通信协议: 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行 ...

  7. Java网络编程_TCP编程以及UDP编程

    首先理清一个概念:网络编程不等于网站编程,网络编程即使用套接字来达到进程间通信,现在一般称为TCP/IP编程. 计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信 ...

  8. IT十八掌Java基础 网络编程

    网络编程 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网 ...

  9. Java基础篇(05):函数式编程概念和应用

    本文源码:GitHub·点这里 || GitEE·点这里 文章目录 一.函数式概念 二.函数与方法 三.JDK函数基础 1.Lambda表达式 2.函数式接口 四.Optional类 1.Null判断 ...

  10. 3.java基础--- if、switch语句编程题

    java基础- 3if语句编程题 if判断语句 题目1(训练) 李雷想买一个价值7988元的新手机,她的旧手机在二手市场能卖1500元,而手机专卖店推出以旧换新的优惠,把她的旧手机交给店家,新手机就能 ...

最新文章

  1. next用法C语言,C语言可变参数的使用
  2. Effective C# 原则1:尽可能的使用属性(property),而不是数据成员(field)
  3. APUE学习笔记之UNIX系统概述(1)
  4. 「后端小伙伴来学前端了」Vue中为什么直接安装less-loader会报版本过高错误?你有没有思考过?
  5. oracle := 和=,oracle a:=100 和 b=:c 区别
  6. c语言 数组比较不等往下累加,用C语言确定两个数组内的元素排列顺序不同,但是元素相同,代码有bug找不出?...
  7. aop阻止方法运行_新型AOP高级氧化高浓度COD废水处理系统介绍
  8. LINUX 文件合并,去重
  9. rust怎么关阳光指令_我家也有庭院多好,伸缩阳光房装上,能休闲能当车库,还不算违建...
  10. mysql单列索引和多列索引_MySQL索引使用说明(单列索引和多列索引)
  11. ebay的api开发技术说明,有点乱
  12. 【转】vim ctag使用方法
  13. 【语音识别】基于matlab傅立叶变换0-9数字语音识别【含Matlab源码 384期】
  14. 信噪比的定义及计算方法
  15. 2021年安全员-B证-项目负责人(广东省)考试题及安全员-B证-项目负责人(广东省)考试总结
  16. 基于微信小程序+Java+Vue+MySQL的菜谱分享小程序
  17. 射频工程师——中兴笔试题
  18. Android之---揭秘微信不死的进程
  19. css 动效彩旗飘扬
  20. 基于yolov3的目标检测与LPRnet字符识别的车牌识别(CCPD2020新能源车牌数据集)

热门文章

  1. win10系统office2010每次打开总是出现配置进度
  2. 【论文解读】MmWave Radar and Vision Fusion for Object Detection in Autonomous Driving: A Review
  3. lua jit android,某LuaJit游戏解密教程~~
  4. 什么是动作分析?动作分析的方法有哪些?
  5. 利用oc门或od门实现线与_TTL,CMOS,OC门,OD门的理解
  6. android 8字体下载,安卓手机字体
  7. 腾讯微博开放平台API SDK vb版源码发布
  8. 软件测试方法和技术有哪些?
  9. 单片机智能密码锁c语言程序,基于单片机控制的密码锁设计(含电路图及源程序)...
  10. winserve2016 万能驱动网卡_万能网卡驱动win10