Java网络编程1
网络相关概念
把java网络编程的基础知识学习完之后,我们才会更加了解那些高性能的网络框架像neety它为什么要这样设计?才能把知识掌握的更加清晰。
网络通信
1)概念:两台设备之间,通过网络,实现数据传输。
2)网络通信:将数据,通过网络,从一台设备传输到另一台设备。
3)java.net 包下:提供了一系列的类 & 接口。供程序员调用,完成网络通信。
网络的相关概念
1)概念:两台或多台设备,通过一定物理设备,连接起来,构成了网络。
2)根据网络的覆盖范围不同,对网络进行分类:
- 局域网:覆盖范围最小,仅仅覆盖一个教室或一个机房
- 城域网:覆盖范围较大,可以覆盖一个城市
- 广域网:覆盖范围最大,可以覆盖全国,甚至全球,万维网是广域网的代表
3)网络编程目的:直接或间接的通过网络协议,与其他的计算机实现数据交换,进行通讯。
4)网络编程中有两个主要的问题:
-1:如何准确的定位网络上,一台或多台主机;定位主机上特定的应用。
-2:找到主机后,如何高效的进行数据传输。
IP地址
1)ip 地址:
-1:概念:用于唯一标识网络中间每台(计算机/主机),这样一个主机如果想要给另外一个主机发送内容,它就能通过ip地址找到这个主机,ip地址好比是身份证号。
-2:查看 ip 地址:ipconfig
-3:ip 地址的表示形式:xx.xx.xx.xx(范围:0~255)
-4:ip 地址组成:网络地址 + 主机地址(如:192.168.12.29),192.168.12代表的是网络地址,而后面的29代表的是主机地址。
-5:IPv4 网路资源地址有限,IPv6 是代替 IPv4 的下一代 IP 通信协议
-6:IPv6是互联网工程任务组设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址。
-7:由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
2)IPv4 地址分类,如下图:
3)端口号:
-1:概念:用于标识 计算机上某个特定的网络程序。
-2:表示形式:0 - 65535。【 2个字节表示 (2^16-1=65535)】
-3:0-1024:已经被占用。
-4:端口号:IP 地址与端口号,组合得出一个网络套接字:Socket。
到这里我们必须要知道几个点,如下图:
- 第一个点是我们做网络编程就必须要知道对方的地址,如果不知道对方的ip地址,我们根本没办法把我们的数据发给对方。
- ip地址分为IPv4和IPv6两类,IPv4它是用4个字节表示的一个ip地址,而IPv6它是用16个字节表示的一个ip地址。
域名和端口号
域名
1)比如百度的域名是www.baidu.com
2)好处:为了方便记忆,解决记忆ip的困难
3)概念:将ip地址映射成域名,这里怎么映射上,HTTP协议
端口号
1)概念:用于表示计算机上某个特定的网络程序。我们如果想要访问远程主机上的某个程序,首先必须要知道这个主机的ip地址,从而我们才能找到这个主机在哪里。但是一个主机上有很多个服务,具体我们怎么才能知道找的是哪个程序呢?可以通过端口号,因为主机上面每一个程序都会独占一个端口号,并且端口号不会重复。
2)表示形式:以整数形式,端口范围0~65535。
3)0~1024已经被占用,比如ssh 22,ftp 21,smtp 25,http 80;
4)常见的网络程序端口号:tomcat 8080,mysql 3306,oracle 1521,sqlserver 1433。