zoukankan      html  css  js  c++  java
  • 20165321 实验五 网络编程与安全-2

    任务详情

    结对编程:1人负责客户端,一人负责服务器
    0. 注意责任归宿,要会通过测试证明自己没有问题

    1. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
    2. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
    3. 服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
    4. 客户端显示服务器发送过来的结果
    5. 上传测试结果截图和码云链接

    我完成的是服务器部分

    运行截图(服务器部分)

    客户端部分的截图在我的结对搭档的博客里面

    代码

    Server_2.java

    import java.io.*;
    import java.net.*;
    import java.util.*;
    
    public class Server_2 {
        public static void main(String[] args) {
            final int port=5353;
            ServerSocket Server_2forClient_2=null;
            Socket SocketOnServer_2=null;
            DataOutputStream Server_2out=null;
            DataInputStream Server_2in=null;
            try {
                Server_2forClient_2=new ServerSocket(port);
            }
            catch (IOException e1) {
                System.out.println(e1);
                //e1.printStackTrace();
            }
            try {
                System.out.println("等待客户端呼叫……");
                SocketOnServer_2=Server_2forClient_2.accept();
                Server_2out=new DataOutputStream(SocketOnServer_2.getOutputStream());
                Server_2in=new DataInputStream(SocketOnServer_2.getInputStream());
                String s=Server_2in.readUTF();
                System.out.println("服务器接收到表达式:"+s);
                String expr;
                int result;
                MyBC mybc=new MyBC();
                mybc.setExpression(s);
                expr=mybc.changedWay();
                result=mybc.evaluate(expr);
                Server_2out.writeUTF("中缀表达式“"+s+"”转后缀表达式“"+expr+",运算结果为:"+result);
                //Thread.sleep(500);
            }
            catch (Exception e2) {
                System.out.println("客户端已断开"+e2);
            }
        }
    }
    
    

    Client_2.java

    import java.io.*;
    import java.net.*;
    import java.util.*;
    
    public class Client_2 {
        public static void main(String[] args) {
            final int port=5353;
            final String host="172.30.4.50";
            Socket Client_2Socket;
            DataInputStream Client_2in=null;
            DataOutputStream Client_2out=null;
            String expr;
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入表达式:");
            expr=scanner.nextLine();
            try {
                Client_2Socket=new Socket(host,port);
                Client_2in=new DataInputStream(Client_2Socket.getInputStream());
                Client_2out=new DataOutputStream(Client_2Socket.getOutputStream());
                Client_2out.writeUTF(expr);
                String s=Client_2in.readUTF();
                System.out.println("服务器回复:
    "+s);
            }
            catch (Exception e) {
                System.out.println("服务器已断开"+e);
            }
        }
    }
    
    
  • 相关阅读:
    Java 抽象类
    Java 多态
    Java 重写与重载
    Java继承
    声卡驱动
    Sublime Text 3快捷键
    近年来世界各地ICO的花式骗局盘点
    区块链未能大爆发的影响因素有哪些?
    BCH分叉是一次站队博弈
    一文读懂百倍币的诞生背景
  • 原文地址:https://www.cnblogs.com/xpl20165321/p/9096488.html
Copyright © 2011-2022 走看看