网 络

网络编程的基本常识:

     目前主流的网络通讯软件:QQ、微信、支付宝、飞信、阿里旺旺....

 

七层网络模型:

ISO(国际标准委员会组织) 将数据的传递从逻辑上分为 以下 7层:

 

 

 

应用层 、 表示层 、 会话层 、 传输层 、 网络层 、 数据链路层 、 物理层。
 
当发送数据时,需要按照上述七层进行一层一层加包的操作,再发送出去;
当接收数据时,需要按照上述七层相反的次序一层层拆包,再解析出来;

 
二, IP地址(重点)
 
如: 192.168.1.1 是绝大多数路由器的默认登录地址
在windows系统中查看 ip地址的方式: 在dos窗口中,输入 ipconfig 命令 ipconfig/all
在unix/Linux系统中查看ip地址的方式: 在终端中使用ifconfig命令;
 
IP地址本质上是由32位二进制组成的整数,叫做ipv4,也有128位二进制组成的整数,叫做ipv6。
 
日常生活中采用点分十进制表示法来进行IP地址的描述,也就是将每8位二进制转换为一个十进制整数,不同十进制整数之间采用小数点分隔。
如:
0x01020304 => 1.2.3.4
 
为了便于IP地址的管理,将IP分为网络地址和主机地址两部分内容:
网络地址可以定位到具体某一个子网中;
主机地址可以定位到该子网中的具体设备。
 
I P地址是设备在互联网中的唯一地址标识,通过该IP地址可以找到设备。
IP地址其实就是一个虚拟的整数,本身和计算机没有关系。实际上
IP地址是绑定了网卡的物理地址(MAC),网卡的物理地址是出厂
就设定,无重复。IP地址其实找到的是网卡。
 

 
 
三, 端口号(重点)
 
IP地址可以定位到具体某一台设备。
端口号可以定位到设备中具体某一个进程。
 
网络编程需要提供:IP地址 + 端口号。
 
端口号本质就是由16位二进制组成的整数,范围是:0 ~ 65535,其中0 ~ 1024之间的端口号已经被系统占用,因此自己编程时从1025开始使用。
 

 
 
四, 常见的网络协议
 
http - 超文本传输协议
ftp - 文件传输协议
tcp - 传输控制协议
udp - 用户数据报协议
ip - 互联网协议
... ...
 
协议 - 本质上就是一种约定/规则,用于描述不同主机之间通信的方式。
 

五,基于tcp协议的编程模型
1 相关的概念
 
C(Client)/S(Server) - Client就是指客户端,Server就是指服务器。
B(Browser)/S(Server) - Browser就是指浏览器,Server就是指服务器。
 
Socket - 本意为"插座",在网络编程中叫做用于通信的逻辑载体,该逻辑载体中包含了IP地址和端口号。
 
2 编程模型(重点、套路)
 
服务器:
(1)创建ServerSocket类型的对象,并提供端口号。 【 先准备一个“服务器插座”】 目的:让客户端可以连接它 (2)等待客户端的连接请求,使用accept()方法。 该方法返回一个Socket类型的变量 (3)当客户端连接成功,则创建Socket对象使用输入输出流进行通信。
(4)关闭Socket对象和ServerSocket对象。
 
客户端:
(1)创建Socket类型的对象,并提供IP地址和端口号。 (2)使用输入输出流进行通信。 (3)关闭Socket对象。
 
3 相关类和方法的解析
(1)ServerSocket类
java.net.ServerSocket类是用于创建服务器套接字对象,用于等待客户端的连接。 ServerSocket(int port) - 创建于参数指定端口绑定的服务器套接字。 Socket accept() - 用于监听并接收客户端的连接请求。 void close() - 用于关闭服务器套接字。
 
(2)Socket类
java.net.Socket类 是用于创建客户端套接字对象,套接字是两台主机通信的端点。 Socket(String host, int port) - 使用参数指定的IP地址和端口号进行对象的创建 InputStream getInputStream() - 用于获取当前套接字的输入流。 OutputStream getOutputStream() - 用于获取当前套接字的输出流。 void close() - 关闭套接字。
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2019-11-02 11:56  小茅棚  阅读(203)  评论(0编辑  收藏  举报