zoukankan      html  css  js  c++  java
  • java第13次作业

    1. 本周学习总结

    以你喜欢的方式(思维导图、OneNote或其他)归纳总结多网络相关内容。

    2. 为你的系统增加网络功能(购物车、图书馆管理、斗地主等)-分组完成

    为了让你的系统可以被多个用户通过网络同时使用,需要为你的系统增加网络功能。

    2.1 简述你想为你的系统增加什么网络功能?设计思路是什么?

    • 增加的网络功能:添加了一个Net类,让代码能够被客户端远程连接,从而进行一系列操作。使用TCP技术以及多线程技术,让系统能够同时被多个客户端访问。
    • 设计思路:在Net类中创建了ServerSocket对象的套接字,然后又创建一个ThreadServer类来实现多线程技术,该类实现了Runnable接口,在run方法里写出了用户可进行的相应的操作。然后在主函数中创建线程,不断接收新的客户端,由此可实现多个用户对系统的同时操作。

    2.2 系统通过网络传递了什么信息?信息的格式是什么?

    • 系统通过网络传递的信息:系统通过网络将用户端或是服务端所进行的操作使用IO流传递给对方。
    • 信息的格式:信息使用字节流InputStream以及OutputStream存储,然后再通过字符流Scanner以及PrintWriter进行包装传输。

    2.3 你的网络模块使用了TCP还是UDP技术?模块中的常用类是什么?


    网络模块使用的技术:TCP技术。
    模块中的常用类

    • TCP网络通信方面:ServerSocket类、Socket
    • 多线程方面:Runnable类、Thread类。

    2.4 截图网络通讯部分的源代码与运行截图,并进行简单说明。

    创建了一个Net类,并定义其端口为9000,在主函数中开启服务端进行客户端的接收,将接收到的客户端放到一个线程中分别进行处理。
    Thread类中实现run方法来设定用户所能进行的操作。
    Net类

    public class Net {
    	public static ServerSocket server;
    	static{
    		try {
    			server = new ServerSocket(9000);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    }
    

    main函数

    public static void main(String[] args) throws IOException {
          while (true){  
                Socket incoming = NetServer.server.accept();
                Runnable r = new ThreadServer(incoming);
                Thread t = new Thread(r);
                t.start();
             }
    }
    

    Thread类

    public class Thread implements Runnable{
    	Socket incoming;
    
    	public Thread(Socket incoming){
    		this.incoming = incoming;
    	}
    
    	public void run() {
    		boolean flag=false;
    		try{
    		InputStream inStream = incoming.getInputStream();
            OutputStream outStream = incoming.getOutputStream();
            Scanner in = new Scanner(inStream);         
            PrintWriter out = new PrintWriter(outStream, true);
            Menu menu=new Menu(incoming,in,out);
            while(!flag) {	
    			out.println("
    	~~~欢迎来到图书馆借阅系统~~~");
    			out.println("	1.注册");
    			out.println("	2.登录");
    			out.println("	3.退出系统");
    			out.println("~~~请输入序号进行相应的操作~~~
    ");
    			switch(in.nextInt()) {
    				case 1:		menu.register();break;
    				case 2:		menu.login();break;
    				case 3:		out.print("~~~正在退出图书馆借阅系统~~~");flag=true;break;
    				default:	out.println("ERROR!!!输入错误!!!请重新输入~~");break;
    			}
    		}
    		}catch(IOException e){
    		}
    	}
    }
    

    截图如下



    3. 码云与PTA

    3.1 统计本周完成的代码量

    需要将每周的代码统计情况融合到一张表中。

    周次 总行数 新增行数 总文件数 新增文件数
    1 115 115 17 17
    2 421 306 24 7
    3 698 277 30 6
    5 1085 387 38 8
    6 1497 412 48 10
    7 2033 536 57 9
    8 2265 232 60 3
    9 2728 522 65 5
    10 3360 632 73 8
    11 3958 598 83 10
    12 4435 477 90 7
    13 4802 367 96 6
    14 5244 442 101 5
  • 相关阅读:
    求10个随机数的最大值、最小值、和、平均值
    设计并编写代码自动格斗类游戏
    用while实现阶乘
    安卓第三次作业
    第二次作业
    第一次作业
    第四次作业
    dialog
    用画图的方法理解原型对象和原型链,事半功倍今晚不加班
    【学习笔记】浅析Promise函数
  • 原文地址:https://www.cnblogs.com/yellower/p/8057847.html
Copyright © 2011-2022 走看看