当前位置: 首页 > article >正文

网络编程 - 3

目录

UDP 连接拓展(业务逻辑)

词典服务器实现


UDP 连接拓展(业务逻辑)

我们上一篇文章实现了一个回显服务器,在服务端中业务方法 process 中,只是单纯的将客户端输入的东西 return 了一下,我们可以在这里带一点业务逻辑~~

可以改进为一个 “词典服务器”,实现英译汉的效果(请求是一个英文单词,响应返回对应的中文翻译)

词典服务器实现

因为词典服务器和回显服务器的大致逻辑都是相同的,只是在业务处理 process 方法的时候,回显服务器只是简单返回,我们要做的词典服务器只需要在 process 进行对应的业务处理即可,所以没必要再重复实现之前的逻辑~直接继承回显服务器即可~同时继承对应的构造方法。

因为我们要实现的是一个词典,英译汉的效果,所以可以创建 HashMap 类型的对象来进行一一对应。

在构造方法中,就不仅仅继承端口号了,我们就可以把我们要实现的英译汉的单词放在这个构造方法中~

在此处还可以无限的添加英汉键值对。(像有道词典那种专业的词典程序,本质上,就是里面包含了一个这样的非常大的,几十万个键值对的 hashMap)

因为 start 方法,我们的词典服务器的逻辑和回显服务器的逻辑相同,不需要进行更改,可以完全从父类进行继承。

process 方法中,就要实现我们自己的逻辑了,所以需要重写。

在 main 方法中启动即可~

下面是这个实现英译汉服务器的代码:

package network;import java.io.IOException;
import java.net.SocketException;
import java.util.HashMap;public class UdpDictServer extends UdpEchoServer{private HashMap<String, String> hashMap = new HashMap<>();public UdpDictServer(int port) throws SocketException {super(port);hashMap.put("cat","小猫");hashMap.put("dog","小狗");}// start 方法可以完全从父类进行继承// process 方法中要实现我们的翻译逻辑,所以要进行重写@Overridepublic String process(String request) {// 参数是一个英文单词// 返回值是一个对应的汉语return hashMap.getOrDefault(request, "查询的单词不存在~");}public static void main(String[] args) throws IOException {UdpDictServer udpDictServer = new UdpDictServer(9090);udpDictServer.start();}
}

运行效果:

服务器:

相关文章:

网络编程 - 3

目录 UDP 连接拓展&#xff08;业务逻辑&#xff09; 词典服务器实现 完 UDP 连接拓展&#xff08;业务逻辑&#xff09; 我们上一篇文章实现了一个回显服务器&#xff0c;在服务端中业务方法 process 中&#xff0c;只是单纯的将客户端输入的东西 return 了一下&#xff0…...

rebase和merge的区别

目录 1. ‌合并机制与提交历史‌ 2. ‌冲突处理方式‌ 3. ‌历史追溯与团队协作‌ 4. ‌推荐实践‌ 5. ‌撤销难度‌ git rebase和git merge是Git中两种不同的分支合并策略&#xff0c;核心区别在于提交历史的处理方式&#xff1a;merge保留原始分支结构并生成合并提交&am…...

5G 毫米波滤波器的最优选择是什么?

新的选择有很多&#xff0c;但到目前为止还没有明确的赢家。 蜂窝电话技术利用大量的带带&#xff0c;为移动用途提供不断增加的带宽。 其中的每一个频带都需要透过滤波器将信号与其他频带分开&#xff0c;但目前用于手机的滤波器技术可能无法扩展到5G所规划的全部毫米波&#…...

【HDFS入门】HDFS性能调优实战:压缩与编码技术深度解析

目录 1 HDFS性能调优概述 2 HDFS压缩技术原理与应用 2.1 常见压缩算法比较 2.2 压缩流程架构 2.3 压缩配置实践 3 列式存储编码技术 3.1 ORC与Parquet对比 3.2 ORC文件结构 3.3 Parquet编码流程 4 性能调优实战建议 4.1 压缩选择策略 4.2 编码优化技巧 5 性能测试…...

如何在 IntelliJ IDEA 中安装通义灵码 - AI编程助手提升开发效率

随着人工智能技术的飞速发展&#xff0c;AI 编程助手已成为提升开发效率和代码质量的强大工具。在众多 AI 编程助手之中&#xff0c;阿里云推出的通义灵码凭借其智能代码补全、代码解释、生成单元测试等丰富功能&#xff0c;脱颖而出&#xff0c;为开发者带来了全新的编程体验。…...

从零到一:管理系统设计新手如何快速上手?

管理系统设计是一项复杂而富有挑战性的任务&#xff0c;它要求设计者具备多方面的知识和技能&#xff0c;包括需求分析、架构设计、数据管理、用户界面设计等。对于初次接触这一领域的新手而言&#xff0c;如何快速上手并成为一名合格的管理系统设计者呢&#xff1f;本文将从管…...

WSL (ext4.vhdx文件)占用空间过大,清理方式记录,同时更改 WSL 保存位置

一、问题 之前使用 WSL Ubuntu 进行过开发板的 Yocto 项目编译&#xff0c;占用空间达到了 70GB 多的空间。后来进行了项目迁移&#xff0c;删除了 WSL 中的所有文件&#xff0c;但是从 Windows 查看空间占用却没有减少&#xff1a; 占用依然是 70 多&#xff0c;查阅发现 vhdx…...

深入解析Java日志框架Logback:从原理到最佳实践

Logback作为Java领域最主流的日志框架之一,由Log4j创始人Ceki Glc设计开发,凭借其卓越的性能、灵活的配置以及与SLF4J的无缝集成,成为企业级应用开发的首选日志组件。本文将从架构设计、核心机制、配置优化等维度全面剖析Logback的技术细节。 一、Logback的架构设计与核心模…...

PCI总线和PCIe总线

本文来源&#xff1a;腾讯元宝 PCI&#xff08;Peripheral Component Interconnect&#xff0c;外围组件互连&#xff09;​​ 是一种由 ​​Intel​​ 在 ​​1991年​​ 提出的 ​​并行总线标准​​&#xff0c;用于连接计算机主板上的各种外设&#xff08;如显卡、网卡、声…...

《软件设计师》复习笔记(14.2)——统一建模语言UML、事务关系图

目录 1. UML概述 2. UML构造块 (1) 事物&#xff08;Things&#xff09; (2) 关系&#xff08;Relationships&#xff09; 真题示例&#xff1a; 3. UML图分类 (1) 结构图&#xff08;静态&#xff09; (2) 行为图&#xff08;动态&#xff09; 4. 核心UML图详解 5.…...

Flash存储器(三):eMMC与UFS协议标准

目录 一.协议介绍 1.1 eMMC协议标准 1.1.1 设计背景 1.1.2 协议演进 1.2 UFS协议标准 1.2.1 设计背景 1.2.2 协议演进 二.特性对比 三.应用场景 在嵌入式存储领域&#xff0c;eMMC&#xff08;嵌入式多媒体卡&#xff09;和UFS&#xff08;通用闪存存储&#xff…...

在RK3588上使用哪个流媒体服务器合适

在RK3588平台上选择合适的流媒体服务器时&#xff0c;需考虑其ARM Cortex-A76/A55架构、硬件编解码能力&#xff08;如支持H.264/H.265/AV1解码&#xff09;以及Linux/Android系统支持。以下是推荐的方案&#xff1a; 1. 轻量级方案&#xff1a;GStreamer RTSP 适用场景&…...

PHP8.2.9NTS版本使用composer报错,扩展找不到的问题处理

使用composer install时报错&#xff1a; The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error, at y our own risk, by setting the ‘disable-tls’ option to true.…...

[文献阅读] EnCodec - High Fidelity Neural Audio Compression

[文献信息]&#xff1a;[2210.13438] High Fidelity Neural Audio Compression facebook团队提出的一个用于高质量音频高效压缩的模型&#xff0c;称为EnCodec。Encodec是VALL-E的重要前置工作&#xff0c;正是Encodec的压缩量化使得VALL-E能够出现&#xff0c;把语音领域带向大…...

【操作系统原理01】操作系统引论

文章目录 大纲一、中断与异常0.大纲1. 中断的作用2. 中断类型2.1 内中断2.2 外中断2.3 判断内外中断 3. 中断机制原理 二、系统调用0. 大纲1.什么是系统调用2.系统调用分类 三、操作性系统内核(了解)0.大纲1.内核2.各种操作系统结构特性 四、操作系统引论0.大纲1.磁盘存储 图片…...

http请求和websocket区别和使用场景

这个问题问得很好&#xff0c;下面我分几部分来详细讲解 WebSocket 的传输能力、适用场景&#xff0c;以及为什么即使用了 WebSocket&#xff0c;我们仍然会用 HTTP 接口&#x1f447; ✅ 一、WebSocket 可以传输多少内容&#xff1f; 理论上&#xff1a; WebSocket 协议本身…...

动态规划经典例题:最长单调递增子序列、完全背包、二维背包、数字三角形硬币找零

一.最长单调递增子序列 设计一个O(n^2)时间的算法&#xff0c;找出由n个数组成的序列的最长单调递增子序列。 实验原理 状态转移方程&#xff08;递推公式&#xff09;&#xff1a; 对于每个 i&#xff0c;遍历之前的元素 j&#xff0c;如果 nums[j] < nums[i]&#xff0…...

最新得物小程序sign签名加密,请求参数解密,响应数据解密逆向分析

点击精选&#xff0c;出现https://app.dewu.com/api/v1/h5/index/fire/index 这个请求 直接搜索sign的话不容易定位 直接搜newAdvForH5就一个&#xff0c;进去再搜sign&#xff0c;打上断点 可以看到t.params就是没有sign的请求参数&#xff0c; 经过Object(a.default)该函数…...

Day2—3:前端项目uniapp壁纸实战

接下来我们做一个专题精选 <view class"theme"><common-title><template #name>专题精选</template><template #custom><navigator url"" class"more">More</navigator></template></common…...

SQL系列:常用函数

1、【MySQL】合并字段函数&#xff08;列转行&#xff09; 它可以将两个字段中的数据合并到一个字段中。 1&#xff09;CONCAT函数 CONCAT函数可以将多个字段中的数据合并到一个字段中。它的语法格式如下&#xff1a; SELECT CONCAT(字段1,字段2,...字段N) FROM 表名;SELEC…...

Python基于知识图谱的医疗问答系统【附源码、文档说明】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…...

yarn的三个资源调度策略

1. 容量调度器&#xff08;Capacity Scheduler&#xff09; 策略原理&#xff1a;将集群资源划分为多个队列&#xff0c;每个队列有固定的资源容量&#xff0c;且可以设置资源的最大和最小使用量。不同的用户或应用程序可以被分配到不同的队列中&#xff0c;在队列内部&#x…...

股指期货跨期套利是如何赚取价差利润的?

股指期货跨期套利&#xff0c;简单来说&#xff0c;就是在同一交易所内&#xff0c;针对同一股指期货品种的不同交割月份合约进行的套利交易。投资者会同时买入某一月份的股指期货合约&#xff0c;并卖出另一月份的股指期货合约&#xff0c;待未来某个时间点&#xff0c;再将这…...

w297毕业生实习与就业管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…...

Java集合框架中的List、Map、Set详解

在Java开发中&#xff0c;集合框架是处理数据时不可或缺的工具之一。今天&#xff0c;我们来深入了解一下Java集合框架中的List、Map和Set&#xff0c;并探讨它们的常见方法操作。 目录 一、List集合 1.1 List集合介绍 1.2 List集合的常见方法 添加元素 获取元素 修改元素…...

让机器学习更透明:使用 Python 开发可解释性模型工具包

友友们好! 我是Echo_Wish,我的的新专栏《Python进阶》以及《Python!实战!》正式启动啦!这是专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会…...

OpenStack Yoga版安装笔记(23)Swift安装

一、官方文档 Object Storage Install Guide — Swift 2.29.3.dev5 documentation 二、环境准备 之前的实验&#xff0c;已经有controller, compute1, block1节点&#xff0c;并已经完成Keystone、Glance、Nova、Neutron、Cinder等主要OpenStack Service的安装。 此处新增…...

MRO 工业品电商系统:智能精准匹配,快速满足采购需求

在竞争激烈的工业领域&#xff0c;企业对 MRO 工业品的采购需求越来越多。但传统 MRO 采购存在信息不透明、客户选型困难&#xff0c;流程复杂处理周期长、库存信息不明确、成本高和客户价格管理混乱等诸多问题。随着电商发展&#xff0c;MRO 工业品电商系统出现&#xff0c;给…...

2025年Q1数据安全政策、规范、标准以及报告汇总共92份(附下载)

一、政策演进趋势分析 &#xff08;一&#xff09;国家级政策新动向 数据要素市场建设 数据流通安全治理方案&#xff08;重点解析数据确权与交易规则&#xff09; 公共数据授权运营规范&#xff08;创新性提出分级授权机制&#xff09; 新兴技术安全规范 人工智能安全标准…...

基于Python Django 的全国房价大数据可视化系统(附源码,部署)

博主介绍&#xff1a;✌程序员徐师兄&#xff0c;7年大厂开发经验。全网粉丝12w&#xff0c;CSDN博客专家&#xff0c;同时活跃在掘金、华为云、阿里云、InfoQ等平台&#xff0c;专注Java技术和毕业项目实战分享✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&a…...