网 络

网络编程的基本常识:javascript

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

 

七层网络模型:编程

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

 

 

 

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

 
二, 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() - 关闭套接字。
相关文章
相关标签/搜索