网络编程

1:网络概述
1.1 网络的发展Net
1964年,美国人---> 阿帕网--->以太网Internet
1.2 网络的通信协议
windows电脑,android手机,Mac平板---》联网 ---->网络协议(一个文档:长度,速率,格式)
--->根据文档来写了一段代码(通信协议)
1.3 通信协议的分类
TCP/IP协议: 是一组协议
TCP:传输控制协议
IP :互联网协议

1.4 TCP/IP的分层


应用层:主要负责应用程序的协议,用来产生和显示数据
HTTP:超文本传输协议(http://www.baidu.com)
FTP :文件传输协议(ftp://192.168.10.82)
DNS : 域名解析: www.baidu.com ---> 192.168.10.82
传输层:主要使网络程序进行通信,保证输出的可靠性
TCP:传输控制协议
UDP:用户数据报协议
网络层:网络层是整个TCP/IP协议的核心,找到对方的主机在哪里
IP : 互联网协议
ICMP:网际控制报文协议(ping www.baidu.com)
链路层:链路层是用于定义物理传输通道,网卡和驱动,用于发送和接收数据

OSI模型:7层模型

1.5 IP地址和端口
要想和一台主机建立联系,必须知道对方主机的IP和端口

IP地址:
在一个网络中,IP地址作为一台主机的唯一标识

IP的地址分类:
IPV4:
xxx.xxx.xxx.xxx :点分十进制 ---->二进制(110100101010)
使用4个字节来描述ip: 1.1.1.1 ---> 255.255.255.255 --->21亿
//网络号 主机号
A类:10.xxx.xxx.xxx 国家级
255.0.0.0
B类:10.10.xxx.xxx 企业级(百度)
255.255.0.0
C类:10.10.10.xxx
255.255.255.0
192.168.164.255 --->路由器 ---- 》电信网关 ---->顺义区192.168.103 --->xxx-?
10.10.10.1 : 网关地址
10.10.10.255 :广播地址

IPV6:
16个字节 128个二进制位 2^128 ----》无限大


端口号:
数据库:3306
ftp: 21
标识一台电脑上唯一的一个进程()
端口号是一个16位的数字(1-65535)
< 1024 系统使用的
1024 - 6000 :系统保留
>6000 :自己使用
8888 9999 12306 10086


ip地址和端口号就可以唯一的表示哪台主机哪个进程

3:InetAddress 类
用来描述电脑的ip和其他信息
//通过某种方式获取InetAddress对象
public static InetAddress getByName(String host) //根据主机名或者网址获取Ip
//在一个局域网内部,主机名和IP地址的作用是一样的
public String getHostName() //获取主机名
public String getHostAddress() //获取IP地址


public static InetAddress getLocalHost() //获取本主机的ip和其他信息

4:UDP协议
UDP是一种面向无连接的协议
UDP的通信双方在传输数据之前不需要建立连接,发送端只管发,根本不会关心接收端是否接收
优点: 传输速度快,效率高,实时性强
缺点: 数据容易丢失,不安全
应用场景:直播,视频会议,

5:TCP协议
TCP是一种面向连接的协议:
TCP的双方在通信之前,必须先要建立连接,这个连接被称为三次握手
优点:可以保证数据传输的可靠性,数据无丢失,数据可以超时重传
缺点: 传输速度慢,效率低
应用场景: 对数据的传输质量要求高:金融系统,终端支付,密码管理
6: UDP编程

运行: 先运行接收端,再运行发送端

原文地址:https://www.cnblogs.com/qiqimu/p/7635589.html