别样JAVA学习(十四)网络编程0.0

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传输。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值