文章目录
1. 网络编程
- 网络基础
- IP地址和端口号
Java的基本网络支持
-
使用InetAddress
-
使用URL
-
传统的网络编程是一项非常细节化的工作,程序员必须处理和网络有关的大量细节,如各种协议,甚至要理解网络相关的硬件知识。而Java则将底层的网络通信细节予以屏蔽,使得使用的编程模型是一个文件模型,也就是说,可以象操作流一样来操作网络数据传输。另外,由于在网络连接中,通常都需要一个服务器同时为多个客户端服务,因此Java的多线程机制也大派用场。
-
事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java JDK提供一些相对简单的Api来完成这些工作.Socket就是其中之一.对于Java而言.这些Api存在与java.net 这个包里面.因此只要导入这个包就可以准备网络编程了.
-
网络编程的基本模型就是客户机到服务器模型.简单的说就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置,而另一个则只需要知道这个固定的位 置.并去建立两者之间的联系. 然后完成数据的通讯就可以了.这里提供固定位置的通常称为服务器,而建立联系的通常叫做客户端.基于这个简单的模型,就可 以进入网络编程啦 .
2.计算机网络基础知识
-
2.1 计算机网络:
-
把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模宏大、功能强大的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。
通俗的说,计算机网络就是通过电缆、电话线、 或无线通讯设施等互联的计算机的集合。 -
网络编程的目的:
直接或间接地通过网络协议与其它计算机进行通信 -
计算机的联网可以实现:
使用远程资源
共享信息、程序和数据
分布处理
2.2 网络通讯的要素
- 实现网络编程:必须要知道网络通讯的要素:
- IP 地 址
端 口 号
传输协议
2.3 IP地址
-
从A机器发送到B机器的数据看成是信的内容,那么,机器在发送数据包的时候也必须知道对方的地址,在网络中,它是通过IP地址来标识的。
-
IP地址是数字型的,由32位(bit)二进制表示,将它分割
成由4段(segment),每段由8位的二进制数组成,每段
(8位)之间用圆点(.)隔开。用点分开的各段可以表
示的数值范围是0~255。
2.3.1 IP地址的分配
- IP地址的定义
为了实现Internet上不同计算机之间的通信,每台计算机都必须有一个不与其它计算机重复的地址—IP地址
因特网上的IP地址具有全球唯一性;
IP地址是数字型的,32位(32bit),由4个 8位的二进制数组成,常用点分十进制的格式表示,例如:192.168.0.16
网络标识(network id)和主机标识 (host id)
2.3.2 IP地址的分类
- A类:1.0.0.0 到126.0.0.0【0.0.0.0 和127.0.0.0保留 】
B类:128.1.0.0到191.254.0.0【128.0.0.0和191.255.0.0保留 】
C类:192.0.1.0 到223.255.254.0【192.0.0.0和223.255.255.0保留】
D类:224.0.0.0到239.255.255.255用于多点广播
E类:240.0.0.0到255.255.255.254
=======================================
IP地址为192.168.0.210则它的主机标识:0.0.0.210 网络标识192.168.0.0
3. 端 口
4. 常用默认端口
FTP的端口是 21
TELNET 端口 23
MAIL 的端口号是 25\110
pop3\smtp 的端口号是 110/25
DNS 的端口号是 53
HTTP通信用的端口号是 80
mysql默认端口是 3306
SQL Server服务使用两个端口: TCP-1433、UDP-1434。
ORACLE默认端口 1521、1526
tomcat默认端口是 8080
5.网络通信协议/接口
- 网络通信协议
计算机网络中实现通信必须有一些约定即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。
网络通信结构
为了使两个结点之间能进行对话,必须在它们之间建立通信工具(即接口),使彼此之间 能进行信息交换。接口包括两部分:
硬件装置:实现结点之间的信息传送
软件装置:规定双方进行通信的约定协议
6. OSI的七层模型
7. TCP协议
在网络上通讯需要使用协议,常见的通讯协议:TCP、UDP
TCP协议为一种可靠的端对端协议:重发一切没有收到的数据,进行数据内容准确性检查并保证分组的正确顺序。
TCP协议位于传输层
- TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来.我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。 打电话:
8. IP协议(Internet Protocol/因特网互联协议)是网络上的计算机进行连接的基础
IP协议是不可靠的:无论传送正确与否都不进行检验、不回送确认、不保证分组的正确顺序
IP协议位于网络层
9. TCP/IP协议
-
TCP/IP:是Internet上不同系统之间互联的一组协议。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准
TCP/IP通常被看成一个4层模型:应用层、传输层、网络层以及数据链路层+物理层。 -
通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
9.1 InetAddress
- 此类表示互联网协议 (IP) 地址。
InetAddress的实例对象包含以数字形式保存的IP地址,同时还可能包含主机名(如果使用主机名来获取InetAddress的实例,或者使用数字来构造,并且启用了反向主机名解析的功能)。InetAddress类提供了将主机名解析为IP地址(或反之)的方法。
static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址。
static InetAddress[] getAllByName(String host) 在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。
static InetAddress getLocalHost() 返回的是本地地址
/**
* 本地主机
*/
InetAddress i = InetAddress.getLocalHost();// 返回本地主机。
System.out.println(i.toString());
System.out.println(i.getHostAddress