首页 编程 软件学院 查看内容

Java网络编程基础

2017-6-2 03:22 |来自: 互联网 2075 0

摘要: 计算机唯一标示——ip我们知道每台计算机都有自己的ip地址,二而且这个ip地址是唯一的(在dos下键入ipconfig可以查看本机ip地址)该ip是用来唯一标示计算机的,这样才可以在网络上找到并访问该计算机上的资源。所以i ...

计算机唯一标示——ip

我们知道每台计算机都有自己的ip地址,二而且这个ip地址是唯一的(在dos下键入ipconfig可以查看本机ip地址)该ip是用来唯一标示计算机的,这样才可以在网络上找到并访问该计算机上的资源。

所以ip是网络编程的基础,在java API中提供了两个类来标示ip地址 InetAddress、InetSocketAddress

InetAddress类只包含计算机的地址和主机名,InetSocketAddress类另外还标示端口号。

端口:操作系统提供了66035个端口为外界提供服务,外部网路想要访问该计算机上的资源必须同过端口上的监听程序进行处理后才能获取,(1~1024为系统预留端口不建议使用)

InetAddressDemo

InetSocketAddress

网络资源路径限定符--URL

URL是网络中资源的唯一标示限定符,每一个url都标示一个资源。该对象一般用于从网络中爬去某些资源,如下一个爬取bing首页源代码的demo

URLDemo

网络中的快递员--数据传输协议

有了数据传输协议个个计算机上的数据才能在网络中进行传输,如我们在浏览器中访问bing的首页是浏览器就需要从bing的服务器上获取数据,当我们搜索新闻时浏览器又需要将搜索框中我们输入的内容发送个服务器,这个数据交换的过程就是使用的TCP协议(http及https都是tcp协议封装后的结果)。

udp协议

udp协议相对于tcp协议而言,其传输速度要快的多,但其不能保证其数据一定能安全到达另一端,有可能出现数据丢失的情况,因为其不需要连接如果找不到另一端来接收就会出现数据丢失的情况,但正是由于去不需要连接所以传输速度比TCP协议要快得多!udp协议一般被用于局域网内的屏幕分享和直播平台之类的场景。

java中提供的udp协议的实现类是DataGramSocket类,该类用于发送和接收udp协议的数据,而通过udp协议发送的数据必须要打成数据包(DataGramPacket)才能被DataGramSocket类进行发送

下面来看下DataGramSocket类的一些常用方法和构造,其提供了多个构造的重载来创建该对象,

我们一般用的较多的是只传入端口号的那个构造,该构是在本机上建立监听,其它的构造也可以自己制定监听的地址,而实际上第二个构造和第三个构造本质上也是使用第四个构造来创建的。可以自己翻下源码。

常用方法:

DataGramPacket类的构造

方法摘要

demo(Server端)

demo(Client端)

效果图

TCP协议

tcp协议与UDP协议想法它是有链接的,TCP协议传输协议需要进行三次握手,也就是我们常说的浏览器从服务其请求数据所说的三次握手。

java提供的tcp实现类为Socket和ServerSocket顾名思义Socket主要表示客户端而ServerSocket主要表示服务端。这里他们的构造和方法就不在介绍了,自己翻API吧(犯懒了,不想写。。。)这里直接上一个简单demo

demo(Client端)

demo(Server端)

demo(ReadMessage )

demo(SendMessage )

效果图

Server端像Client端发送数据

TCP协议与HTTP(/HTTPS)协议的区别

很多人都分不清这两者之间的区别,前边儿也已经说了Http协议实际上就是对TCP协议的封装,我们正常的TCP两链接中携带的数据时很广泛的且没有固定的格式,浏览器没办法进行通用的解析(浏览器实际上就是一个Socket客户端)。也就是说一个每个浏览器都有自己解析数据的方式且相互之间并不统一,从而导致了互联网一直停滞不前,所以就有了http协议的诞生,http协议封装了TCP协议。简单的说也就是:TCP协议规定了数据的传输方式,而http协议规定了连接中数据的格式。

本文出处: http://www.toutiao.com/a6420312287782142209/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部