TCP网络编程、英译汉练习
发布日期:2021-05-14 16:39:30 浏览次数:15 分类:精选文章

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

一、TCP协议实现网络通信

服务器端:
public class TCPServer {       //端口号    private static final int port = 9002;    public static void main(String[] args) throws IOException {           //1.创建TCP服务器端        ServerSocket serverSocket = new ServerSocket(port);        System.out.println("服务器启动成功!");        //2.等待客户端的连接.连接起来就可以进行交互        Socket client =  serverSocket.accept();//会返回socket对象        //连接起来就可以进行交互        System.out.println(String.format("有客户端连接了,客户端IP:%s  端口:%d",                    client.getInetAddress().getHostAddress(),client.getPort()));        //try-resource:JVM可以自动关闭资源        try( BufferedReader bufferedReader = new BufferedReader(                new InputStreamReader(client.getInputStream())        );             BufferedWriter bufferedWriter = new BufferedWriter(                     new OutputStreamWriter(client.getOutputStream())             )        ){               while (true){   //可能有多个消息                //3.接收客户端的信息                String msg = bufferedReader.readLine();                if (msg != null && !msg.equals("")) {                       System.out.println("收到客户端信息:" + msg);                }                //4.返回给客户端的响应信息                String serMsg = "我收到了!";                bufferedWriter.write(serMsg+"\n");//!!!!!!!!!!!!!!!!!!!!!!+\n                //刷新缓冲区                bufferedWriter.flush();            }        }    }}

客户端:

public class TCPClient {       //服务器端的IP    private static final String ip = "127.0.0.1";    //服务器端口号    private static final int port = 9002;    public static void main(String[] args) throws IOException {           //1.创建TCP客户端--》同时连接到服务器端        Socket socket = new Socket(ip,port);        try(BufferedReader bufferedReader = new BufferedReader(                new InputStreamReader(socket.getInputStream()));            BufferedWriter bufferedWriter = new BufferedWriter(                    new OutputStreamWriter(socket.getOutputStream()));            Scanner scanner = new Scanner(System.in);            ){               while (true){   //不停的进行信息写入                System.out.print("->");                String msg = scanner.nextLine();                //2.发送信息                bufferedWriter.write(msg+"\n");                bufferedWriter.flush();                //3.接收服务端返回的信息                String serMsg = bufferedReader.readLine();                System.out.println("服务器端反馈:"+serMsg);                //刷新缓冲区                bufferedWriter.flush();            }        }    }}

二、基于TCP实现英译汉程序

服务器端:
public class TCPServerByCN {       private static final int port = 9003;    //定义翻译字典    static HashMap
dirMap = new HashMap<>(); //在项目运行之后 static { dirMap.put("hello","你好"); dirMap.put("cat","猫"); dirMap.put("dog","狗"); } public static void main(String[] args) throws IOException { //1.创建TCP服务器 ServerSocket serverSocket = new ServerSocket(port); System.out.println("英译汉服务器已启动~"); //2.等待客户端连接 Socket client = serverSocket.accept(); System.out.println(String.format("有客户端连接了,客户端IP:%s 端口:%d", client.getInetAddress().getHostAddress(),client.getPort())); try( BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(client.getInputStream())); BufferedWriter bufferedWriter = new BufferedWriter( new OutputStreamWriter(client.getOutputStream())) ) { while (true){ //循环接收 //3.得到客户端的英文单词 String en = bufferedReader.readLine(); if(en!=null && !en.equals("")){ //4.英译汉的结果处理方法 String cn = processData2(en); //5.将结果返回给客户端 bufferedWriter.write(cn+"\n"); //刷新 bufferedWriter.flush(); } } } } /**【方式1】 * 穷举法---实现英译汉 * @param en * @return */ private static String processData(String en) { String cn ="未知"; switch (en){ case "hello": cn = "你好"; break; case "cat": cn = "猫"; break; case "dog": cn = "狗"; break; default: break; } return cn; } /**【方式1】 * HashMap---实现英译汉 * @param en * @return */ private static String processData2(String en){ //todo:扩展英译汉项目2021.4.14:数据库➕爬虫 String cn ="未知"; cn=dirMap.get(en); return cn; }}

客户端代码略。

上一篇:实现简易HTTP服务器
下一篇:UDP网络编程

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月23日 19时26分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章