目录
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 方法中要实现我们的翻译逻辑,所以要进行重写
    @Override
    public String process(String request) {
        // 参数是一个英文单词
        // 返回值是一个对应的汉语
        return hashMap.getOrDefault(request, "查询的单词不存在~");
    }
    public static void main(String[] args) throws IOException {
        UdpDictServer udpDictServer = new UdpDictServer(9090);
        udpDictServer.start();
    }
}
 
运行效果:
服务器:








![[文献阅读] EnCodec - High Fidelity Neural Audio Compression](https://i-blog.csdnimg.cn/direct/ef1619ec5dd242f5ba352767ccfc9bb7.png)












