第十三周的做业。
html
目录
1.本章学习总结
2.Java Q&A
3.码云上代码提交记录及PTA实验总结
4.课后阅读java
1.1 以你喜欢的方式(思惟导图、OneNote或其余)概括总结网络相关内容。
下文来自与Java核心技术,有不少零散的知识点:正则表达式
耗时不一样,由于210.34.128.152在福建厦门,上图183.232.231.173在广东广州,距离近,耗时短。数据库
23
编程
并非,啥都没有小程序
返回主页的网页源代码浏览器
QQ 使用8080端口 183.192.196.210来自上海市上海市 移动服务器
8080端口同80端口,是被用于WWW代理服务的,能够实现网页浏览,常常在访问某个网站或使用代理服务器的时候,会加上“:8080”端口号。网络
firefox 都是使用80端口
80端口是为HTTP开放的
223.202.6.26来自北京市朝阳区 BGP多线
这个BGP多线??
还有183.250.178.82来自福建省厦门市 移动
虾米音乐 113.18.220.108来自福建省福州市 移动多线程
IP、端口、域名、协议
大体类似,就是有些多是颜色控制符不能解析出来
由于没有发送get请求获取html文档
必定要再加个newline,由于咱们输入GET / HTTP/1.0后,要连续敲两次回车。
2.1演示过了
启动两个线程,一个线程用来接受信息,一个线程用来发送信息
忘记加服务器本身发的消息没有在服务器端显示,这个加一句输出就行了。
socket的输入输出流是字节流,而后用字符流来包装。
Java网络编程与流之间的关系:
Java programs see network connections as streams of data that can be interpreted and responded to in any way necessary.
好比文件传输:
首先发送端从本地文件系统中读取文件,而且建立和接收端的网络链接,而后发送端提供数据包装器,而且把文件写入这个包装器中,而后写到网络中。接收端创建新文件,链接发送端,经过网络接收到数据并进行解包,将数据写到缓冲区中,最后从缓冲区写到本地新建的文件中去。这其中数据都是以字节流的形式来保存的。
主要功能就是客户端与服务端之间的通讯
ClientChart:设置客户端界面
ClientReadThread:客户端读取线程
ClientListener:客户端的监听器
服务端同理可得
MainThread:启动服务端;监听到客户端链接后,加入客户端的列表中;启动服务端读取线程
改为3了,5跑的过久……
题目集:多线程(4-4到4-10)
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 而后搜索并截图
Networking Basics
在网上运行的电脑都是用TCP和UDP来进行互相通讯的。当咱们写网络程序的时候,都是在应用层上操做。通常来讲,咱们都不用关心TCP和UDP层。可使用java.net包。这些类提供独立于系统地网络通讯。
TCP:
当两个应用想可靠地和对方联系,他们会创建联系并在这个链接上收发数据。这就像是打电话。TCP保证从链接一端发送的数据均可以到达另外一端,而且都会按照发送的顺序接收到。不然,就会报错。
TCP为须要可靠联系的应用提供点对点的通道。HTTP,FTP和Telnet都是这样的例子。数据收发的顺序对于这些应用来讲是很重要的。当HTTP用来从URL上读取数据的时候,数据就必须按照发送的顺序接收。不然,就会收到混乱的HTML文件,崩溃的压缩文件或者是无效的信息。
UDP:
UDP的通讯是不能保证的。它从一个应用发送数据包,datagrams到另外一个应用。发送数据包就像是经过邮寄服务送信:顺序是不重要的,也不能保证。
有些通讯是不须要那么严格的标准的。事实上,可能由于可靠通讯所产生的额外费用致使服务无效。
好比对于时钟服务来讲,数据包丢了,再发一次是没有道理的,由于客户第二次收到的时候,时间已经不对了。若是客户发出两次请求,而且收到了无序的数据包,这并不重要,由于客户能够本身分辨出来而后再发一次请求。TCP在这种场合是毫无必要的,并且会致使时钟服务无效。另外一个例子就是ping命令,这边不作赘述。
总的来讲,一台主机只有一个物理链接。全部数据都经过这个链接到特定的电脑。然而,数据可能会出于不一样的目的在这台主机上运行。因此电脑要想知道是什么应用发送的数据,就用经过使用端口。
在网上传输的数据都会带上主机的地址信息还有目的端口。主机由32位的IP地址来指定,IP地址能够用来将数据准确的送到网上的某台主机上。端口就是一个16位的数字,TCP和UDP就能够送到正确的程序上。
URL:
URL是统一资源定位的缩写,是网上资源的引用。咱们能够向Web浏览器提供URL来定位网上的文件,就像是在信上提供地址,邮局才能知道往哪边寄。
Java的Internet程序会用到URL来寻找想要访问的网上资源。可使用java.net中的URL类来表示一个URL地址。
Socket:
URL和URLConnections提供相对高级的机制来访问网上的资源。有时程序须要使用低级的网络通讯。
例如,服务端提供一些服务,好比处理数据库的访问和发送最新的股价。客户使用服务端提供的服务,显示数据库的查询结果或者说向投资者提供股票购买推荐意见。两方的通讯必须是可靠的。数据不能丢失,并且必须按照服务端发送的顺序到达客户端。每一个程序都会绑定一个socket在链接的末端。为了通讯,客户端和服务端都要从socket中读取或者是写入。
Datagrams
一些应用是不须要TCP提供的可靠的、点对点的通道来通讯。这时候就可使用UDP来进行通讯。
UDP提供一种网络通讯的模式,应用是发送数据包的,就是datagram。datagram是独立的,是否到达,到达时间和内容都是无法保证的。Java提供了相应的类,即DatagramPacket和DatagramSocket。
服务器把网页给浏览器,就是把网页的HTML代码给浏览器,而后 让它显示出来而已。浏览器和服务器之间的传输协议就是HTTP。
GET / HTTP/1.1:
GET表示一个读取请求,将从服务器得到网页数据,1.1是HTTP协议的版本,大部分服务器也支持1.0版本。
浏览器依靠Content-Type来判断响应的内容所属的类型。
当浏览器读取到HTML源码后,它会解析HTML,显示页面,而后,根据HTML里面的各类连接,再发送HTTP请求给服务器,得到相应资源。
FileReader类:
用来读连接文件(存放商品的连接),而后getLines()能够返回一个存放Url的列表。
Url类:
getConnection()用来得到连接,返回URLConnection类型
getReader()用来得到连接的输入流
isExist()用来判断是否含有相应字符串,在该程序中就是用来判断是否含有free_msg字符串,即金子商品,若是有,则返回真。具体实现即用BufferedReader按行读取。
Digger类:
这个类继承Thread类,每读入一个连接,就开启一个线程,查看是否有相应字符串,若是有的话,就用IE来打开连接
Runtime.getRuntime().exec("C:/Program Files/Internet Explorer/iexplore.exe " + url.getUrl());