1、概述1
数据通信的原理就是数据传输,与本机不同涉及到了网络。
本机默认的IP地址:127.0.0.1。
一些IP地址被保留了,不用于公网上。
保留为局域网地址,局域网可能相同。
2、概述2
端口:0-65355
0-1024一般被系统的程序所保留了。
常见端口:
web服务:默认80。
Tocat服务器:默认8080。
MySQL:默认3306。
协议:TCP、UDP
3、网络模型
OSI(Open System Interconnection)开放是系统互联。
七层:主机至网络层(物理层、数据链路程)、网际层(IP)(网络层)、传输层(传输层)(TCP和UDP)、应用层(会话层,表示层,应用层)(HTTP和FTP)。
数据封包-->数据拆包
4、IP地址
IP地址
- 网络中设备的标识
- 不易记忆,可用主机名
- 本地回环地址:127.0.0.1 主机名:localhost
5、TCP和UDP
UDP(像邮寄发快递包,如聊天工具:QQ,视频会议)
将数据及源和目的封装成数据包中,不需要建立连接。
每个数据包大小在限制64k内。
因无连接,是不可靠协议。
不需要建立连接,速度快。
TCP的特点和UDP就完全不一样了,TCP是必须面向连接。
面向连接什么意思呢,就是哥们要想通信,通过TCP通信的话,
对方必须在。我先去确定对方在,我再确定数据的发送。
对方在不在,其实用的就是3次握手,它有那么个机制。
听着哈,我要和你通信了,要向你发送数据,是不是要确定你在啊?
我先建立一个通路,如果你收到的话,会说:“小明,我在。”但你是不是不知道你发过去,
小明有没有收到?所以我收到你的数据后呢,我会再发一次说:“哦我知道了。”
几次?“张三你在吗?”“小明,我在”“我知道了”通过这三次握手,就完成TCP通道建立。
这就是TCP。它比较可靠,因为如果你单方面断开,是不是数据就传输不了。
但由于要建立连接传输效率低。进行大数据量传输。
大家注意了,举个例子,把这个说明白了
TCP相当什么呢?就是打电话。
大家注意了没有,比如我打110,一拨,就是在向对方发送连接请求。
这时那边嘟嘟响,对方一拿起对话,通了没?通了吧,连接通路就建立了。
接下来我跟他说话,这话是不是数据?数据就在通路里传输。
而UDP相当什么呢?步话机。
什么是步话机,像警匪片里,要调频段的,比如说我5个哥们要用步话机对话。
那么我们之前需要将步话机跳到同一频段,这样才可通话。
我在这边说土豆、土豆注意注意,但如果土豆那没开机是不是我就一直喊,
你是不是收不着,那数据是不是丢了。
那小明打电话也可以这样啊,打电话对方给挂了。没事吧,对方把电话挂了,
这边是不是就盲音啦?那你还在这边“嘿嘿”还在说事,这不就疯了嘛~~
好了大家TCP和UDP我们说完以后呢,接下来哈,我们思考另外一个问题就是:
那么像这种协议这么负责的话,Java是不是要给我们提供点对象。
那么接下来我们看一下,Java所给我们提供的对象。
看之前我们要看一个单独的概念。
06、Socket
什么概念这么重要呢?Socket,看到了吧。
其实我们所说的网络编程,网络编程,什么编程啊?就是Socket编程。
有的哥们挺逗的,出了本网络编程的书,书里面讲什么呢?JSP啊,Servlet啊。
这不是搞笑呢,JSP、Servlet是什么呢,JavaEE框架部分的一些组件技术,
底层是封装这个,但是呢说的并不是Socket。
什么是Socket,Socket是不是插座啊?
大家早期有没有听过英特尔出的CPU是不是有一个赛扬系列的,
CPU是不是要插到CPU槽上,那个槽你知道吗?最早是不是Socket370啊。
扫盲一下哈~~插槽是不是就是我们所说的插座。
那370什么意思呢,CPU翻过来是不是有很多针啊?一共370个针。能插370针脚的插座。
往后呢是不是要处理更复杂的程序啦?指令多了,CPU就复杂了,针脚也就多了。
解释一下通信
这里有两台机器想要通信,怎么办?是不是要搞根网线连上啊,是不是机器屁股后面有个网卡口啊。
这必须的,然后用网线连接这两个网卡口。铛铛,一连上,网卡口这边是不是相当于插口。
但我们说的Socket是这个吗?并不是网卡这个。每个应用程序,都有类似于这样的应用插座。
就相当于什么样的呢,说我这机器里面啊,有个软件,然后你那机器里也有一个这样的软件。
我通过我这个软件把我这边的数据发到你那边去,然后你通过你那边这个软件把这个数据发过来。
然后我这个软件是不是相当于Socket啊,你这个软件也相当于Socket,明白这个意思了吧,
或者可以比如港口,两个港口通信是不是,必须先有码头(Socket)。这就是我们所知道的插座的概念。
它相当于计算机中的一个网络应用程序,而这个应用程序被计算机主板处理完全以后从网卡口出来的吧,
网卡也就是物理传输介质。那么我们讲的网络编程也就是Socket编程,1,Socket就是为网络服务提供的一种机制。
通信两端必须先有Socket,只有有了它才能进行连接,2,通信两端都有Socket。
连接后你的数据才会传输。3,网络同心其实就是Socket间的通信。4,数据在两个Socket间通过IO传输。