
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 HashMapdirMap = 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; }}
客户端代码略。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月23日 19时26分37秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
c++复杂数据类型——结构体、共用体、枚举、匿名类型、类型别名
2021-05-15
Linux常用命令合集
2021-05-15
冒泡排序
2021-05-15
高兴的小明
2021-05-15
GB2312-80 汉字机内码
2021-05-15
允许并列的排名
2021-05-15
狼人杀
2021-05-15
超级素数——蓝桥杯
2021-05-15
n的a进制数
2021-05-15
配置jdk的环境变量
2021-05-15
leetcode9.回文数
2021-05-15
【C++ Primer 第五版】 注释简介
2021-05-15
【C++ Primer 第五版】处理类型
2021-05-15
echo命令的颜色及同行显示控制
2021-05-15
CentOS7利用Systemd添加用户自定义系统服务
2021-05-15
Mycat入门
2021-05-15
懒人HTML5笔记-1
2021-05-15
两台服务器http方式共享yum软件仓库
2021-05-15
进程间同步
2021-05-15
io多路复用___select
2021-05-15