zoukankan      html  css  js  c++  java
  • 201521123071 《JAVA程序设计》第十三周学习总结

    第13周作业-多线程


    1. 本周学习总结

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

    1.常用端口号:Web服务:80  FTP服务:21  Telnet服务:23
    2.网络常用命令(cmd):
      ipconfig  查看网络配置信息,如ip地址
      ping     测试网络是否连通
      telnet    远程登录
      Fport    (xp下)查看计算机端口使用情况
    3.Socket通常用来实现客户端和服务器端的连接。对从Socket对象中获得的流进行操作,即可进行网络通信。流操作<->网络通信   无需关心底层的网络通信细节!  
    

    2. 书面作业

    1. 网络基础

    1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同?

    结果不同之处在于他们的往返行程的估计时间。不同是因为他们访问网站的速度不一样,因为这边连的是校园网,服务器相对比较近,所以访问的比较快。
    

    1.2 telnet bbs.newsmth.net,上面这条命令连接的是远程主机的什么端口号?

    23端口号
    

    1.3 telnet cec.jmu.edu.cn 80,尝试回答:你从屏幕看到的是一些什么内容?返回的内容是不是cec.jmu.edu.cn的主页内容?尝试使用GET /index HTTP/1.0命令,会返回什么?见实验任务书题目1

    屏幕上没有显示,内容不是主页内容。使用后会出现主页的源代码
    

    1.4 启动ConnectionWatcher,然后启动若干个可以联网的程序(如QQ, telnet,浏览器等),查看本机上有什么程序联网,使用了什么端口?QQ占用了什么端口和那些远程IP进行交互,这些IP分布地在那里?使用了什么协议进行通信?

    具体如图可知,WPS,QQ有联网,使用了80端口。使用了TCP协议。
    IP分布地如下图所示:
    

    1.5 编写网络程序必不可少的几个信息是什么?

    IP+端口,使用的协议,输入输出流。
    

    2. TCP客户端程序编写,参考:实验任务书-题目1

    2.1 参照SocketTest.java编写一个简单的连接远程服务器小程序Client.java,可以接收并显示服务器发送的信息。启动时需要首先在控制台指定远程主机IP与端口号。(截图,出现自己学号)

    2.2 将程序中的网址改成bbs.newsmth.net,端口号改为23,再次观察返回结果?尝试使用telnet bbs.newsmth.net 23。对比返回结果



    结果应该都是一样的,只是因为编码的不一样,比如说颜色控制符一类的,所以显示出来的一个是我们所能读的,一个是乱码。

    2.3 将程序中的网址改成cec.jmu.edu.cn,端口号改为80进一步观察返回结果。没有任何返回结果,为什么?

    没有制定获取方式
    

    2.4 启动网络调试助手,将其设置为TCP Server,并启动,如下图所示

    尝试使用Client.java连接该TCP Server,使用该服务器向Client发送信息。(截图)

    详情见2.1
    

    2.5 回答:现在的Client.java只能接收信息,能否改造Client.java使其可以与服务器进行交互(服务器可以发送信息给Client,Client也可发送信息给服务器),写出大概思路即可。

    设置多线程,一个接收一个发送
    

    3. ServerSocket与TCP服务器,参考:实验任务书-题目2

    3.1 简易单线程MenuServer,题目3.1-3.4。(关键代码及运行截图,包含学号)可以使用网络调试助手,将其设置为TCP Client(IP与端口填你的MenuServer的IP与端口),连接你的MenuServer。其中的文件搜索功能为选做?

    3.2 多线程MenuServer。(截图证明你这个是多线程服务器,使用telnet连接)

    4. UDP服务器,参考:实验任务书-题目3,EchoServer.java,ThreadedEchoServer.java (多线程服务器)

    4.1 改造3.1或3.2,将其改造成基于UDP的MenuServer。(运行界面代码截图,包含学号)。可以使用网络调试助手,将其设置为UDP,要填本机IP与端口也要填远程服务器的IP与端口。

    5. 论述题:网络程序与流,参考:UDPServer.java

    5.1 前面编写的程序用到了大量的流的相关知识。简述,编写网络程序时应当选择什么样的流?场景如:简单的文字聊天、文件传输、应用层协议服务器,如QQ、聊天室、网络游戏。

    6. 代码阅读,阅读ServerAndThread目录中的源代码

    6.1 运行该程序(截图)。简述这个程序的主要功能。

    6.2 画出源代码的结构图(各个类的依赖关系)。并简要说明各个类的功能。

    6.3 简述这个程序有什么不足之处及改进方法.

    3. 码云

    在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

    码云用不了额……
  • 相关阅读:
    第4月第1天 makefile automake
    第3月30天 UIImage imageWithContentsOfFile卡顿 Can't add self as subview MPMoviePlayerControlle rcrash
    第3月第27天 uitableviewcell复用
    learning uboot fstype command
    learning uboot part command
    linux command dialog
    linux command curl and sha256sum implement download verification package
    learning shell script prompt to run with superuser privileges (4)
    learning shell get script absolute path (3)
    learning shell args handing key=value example (2)
  • 原文地址:https://www.cnblogs.com/HXY071/p/6866302.html
Copyright © 2011-2022 走看看