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("\n\t~~~欢迎来到图书馆借阅系统~~~");
out.println("\t1.注册");
out.println("\t2.登录");
out.println("\t3.退出系统");
out.println("~~~请输入序号进行相应的操作~~~\n");
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 |