【网络编程】-- 04 UDP

news/2024/5/18 14:41:45 标签: udp, java, 笔记

网络编程

6 UDP

6.1 初识Tomcat

服务端

  • 自定义 S
  • Tomcat S

客户端

  • 自定义 C
  • 浏览器 B

6.2 UDP

udp_20">6.2.1 udp实现发送消息

接收端:

java">package com.duo.lesson03;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class UdpServerDemo1 {
    public static void main(String[] args) throws Exception {

        //开放端口
        DatagramSocket datagramSocket = new DatagramSocket(9090);
        //接收数据包
        byte[] buffer = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(buffer, 0, buffer.length);

        datagramSocket.receive(datagramPacket);  //阻塞接收
        System.out.println(datagramPacket.getAddress().getHostAddress());
        System.out.println(new String(datagramPacket.getData(), 0, datagramPacket.getLength()));
        //关闭连接
        datagramSocket.close();

    }
}

发送端:

java">package com.duo.lesson03;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

//UDP不需要连接服务器
public class UdpClientDemo1 {

    public static void main(String[] args) throws Exception {
        //1.建立一个Socket用于发送包
        DatagramSocket datagramSocket = new DatagramSocket();

        //2.建一个包
        String msg = "您收到一条新消息";
        InetAddress inetAddress = InetAddress.getByName("localhost");
        int port = 9090;
        DatagramPacket datagramPacket = new DatagramPacket(msg.getBytes(), 0, msg.getBytes().length, inetAddress, port);

        //3.发送包
        datagramSocket.send(datagramPacket);

        //4.关闭流
        datagramSocket.close();
    }
}

运行结果:

image-20231208110004629

http://www.niftyadmin.cn/n/5253856.html

相关文章

秋招春招,我简历投了无数,为何没有人约我面试?

这个问题是很普遍的,很多朋友都经历过,没有找好工作单位的朋友,着急心理可想而知。尤其是心急的情况下,饥不择食,只要有单位收,立马就去签约,至于是否 适合自己的发展,完全不考虑了&…

Django多对多ManyToManyField字段

Django是一个支持多对多关系的Web框架,可以在模型中定义多对多关系。多对多关系通常涉及两个实体之间的复杂交互,例如用户和组之间的关系,或者课程和学生之间的关系。在Django中,可以使用ManyToManyField字段来定义多对多关系。 …

JS 云服务 Deno Depoly 宣布,推出定时运行功能 Deno Cron

如果需要定时执行 JS 脚本,以后多一个选项。 Web 构建日益复杂。编写现代软件包括利用云基础设施、剖析模板代码和管理复杂的配置,而开发人员只想专注于编写业务逻辑。 Deno 旨在通过删除配置和不必要的模板,从根本上简化 Web 开发。我们将无…

如何实现远程公共网络下访问Windows Node.js服务端

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

VS2015编译GDAL3.2.0+opencl+C#

参考借鉴https://www.cnblogs.com/litou/p/15004877.html 参考借鉴https://www.cnblogs.com/xiaowangba/p/6313903.html 参考借鉴gdal、proj、geos、sqlite等在VS2015下编译和配置_vs2015编译sqlite3-CSDN博客 参考借鉴Windows下GDAL3.1.2编译 (VS2015)_gdal windows编译-CS…

每天五分钟计算机视觉:使用1*1卷积层来改变输入层的通道数量

本文重点 在卷积神经网络中有很多重要的卷积核,比如1*1的卷积核,3*3的卷积核,本文将讲解1*1的卷积核的使用,它在卷积神经网络中具有重要的地位。由于1*1的卷积核使用了最小的窗口,那么1*1的卷积核就失去了卷积层可以识…

C++ //习题2.7 写出程序运行结果。请先阅读程序,分析应输出的结果,然后上机验证。

C程序设计 &#xff08;第三版&#xff09; 谭浩强 习题2.7 习题2.7 写出程序运行结果。请先阅读程序&#xff0c;分析应输出的结果&#xff0c;然后上机验证。 IDE工具&#xff1a;VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 #include <iostream> usin…

GMS申请白名单

如何向google申请白名单&#xff1a; 1.fingerprint 配置好项目的fingerprint&#xff0c;fingerprint的各个组成部分都要确定好&#xff0c;一旦该fingerprint申请白名单之后&#xff0c;如果后续修改导致fingerprint变化&#xff0c;则需要重新向google申请白名单和google k…