网络编程
一、网络编程与网络编程
网页编程:关注上层应用(例如页面是如何实现啊、页面是如何设计的啊之类的关注点)
网络编程:关注底层数据的传输
二、计算机网络的概念
网络即将不同区域的电脑连接到一起, 组成局域网、城域网或广域网。把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。
主要功能如下:
资源共享
信息传递与集中处理
均衡负荷与分布处理
三、相关名词解释
IP地址:定位网络中的节点……(电脑,手机……)
端口号: 区分软件(例如从一台设备的应用给另一台设备的该应用发消息,就是通过端口号来决定的)
URL:统一资源定位符(可以定位互联网上每一个东西的指针)
传输层协议:在互联网中传输数据必须遵循的协议(标准、规范)
主要的两种传输层协议:
UDP协议:不安全,协议简单,开销小,效率高,大小限制一般不超过60K
TCP协议:基于连接,安全,效率低,没有大小限制
(理解:将UDP协议视为邮寄包裹,TCP视为打电话。
邮寄包裹时对方的地址可能改变导致最终收不到包裹,所以是不安全的,而打电话需要双方同意建立连接所以是安全的。
寄包裹的话只要没有自身调节的原因原则上可以一直进行,而打电话需要考虑对方是否能接电话,所以UDP效率更高。
寄包裹有大小限制,但是打电话想说啥就说啥。)
http协议:https为安全的http协议。在访问网站时,通过自己的浏览器访问该网站的服务器,就必须要满足http协议。而http协议的底层就是TCP协议。
四、IP
(一)定义
是 Internet Protocol 的外语缩写, 网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。 在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP 协议就可以与因特网互连互通。
(二)IP的分类
IPV4:四个字节 32位(现在还是IPV4用的多)
IPV6:128位
(三)特殊的IP:
非注册IP:192.168.0.0 - 192.168.255.255(共组织内部使用的IP)
本地的IP:127.0.0.1
localhost:表示本地域名
(四)IP与域名
IP和域名可以相互转换
DNS解析器:用来做域名和IP之间的解析问题
例子:
百度的域名是:WWW.baidu.com
百度的IP地址是:36.152.44.96
通过域名或者IP地址都可以访问到百度
(五)java.net包
含有很多学习网络编程中会用到的类型
**InetAddress:**封装计算机的IP地址和DNS(没有端口信息!)
这个类没有构造函数。如果要得到对象,只能通过静态方法: getLocalHost , getByName ,getAllByName , getAddress , getHostName
(六)获取IP地址的练习
package class0313test;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Class0101IP {
public static void main(String[] args) throws UnknownHostException {
//使用getLocalHost方法创建InetAddress对象
InetAddress ip1 = InetAddress.getLocalHost();
//输出本机的本机名和IP地址
System.out.println(ip1);
//分别拿到主机名和IP地址
System.out.println(ip1.getHostName());
System.out.println(ip1.getHostAddress());
//根据指定的域名获得他的IP
InetAddress ip2 = InetAddress.getByName("www.baidu.com");
System.out.println(ip2);
System.out.println(ip2.getHostAddress());