java基础篇18-网络编程的常识和基于TCP协议的编程模型

1.网络编程的常识
  目前主流的网络通讯软件有:微信、QQ、YY、陌陌、探探、飞信、阿里旺旺、...
  在吗? 
1.1 七层网络模型
  为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将数据的传递从逻辑上划分为以下七层:
   应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
   在发送数据之前要按照上述七层协议从上到下一层一层进行加包处理,再发送出去;
   在接收数据之后要按照上述七层协议从下到上一层一层进行拆包处理,再解析出来;
1.2 常用的协议
   http协议 - 超文本传输协议,主要用于浏览网页时使用。
   ftp协议  - 文件传输协议,主要用于上传和下载文件时使用。
   tcp协议  - 传输控制协议,主要用于网络通信时使用。
   udp协议  - 用户数据报协议,主要用于网络通信时使用。
   ip协议   - 互联网协议,是上述协议的底层协议。
   协议本质上就是一种约定,用于规范通信双方的方式和规则。
1.3 IP地址
如:
   192.168.1.1  - 是绝大多数路由器的登录地址,进行Mac地址的过滤。
   IP地址本质上就是互联网中的唯一地址标识,通常由32位二进制组成的整数进行描述,叫做IPv4,当然也有128位二进制组成的整数,叫做IPv6。
   日常生活中采用点分十进制表示法来进行IP地址的描述,也就是将每个字节的二进制转换为十进制整数,不同整数之间采用小数点隔开。
如:
   0x01020304  => 1.2.3.4
查询IP地址的方式:
   Windows系统:在dos窗口中使用ipconfig命令或ipconfig/all命令查看即可.
   Linux系统:  在终端窗口中使用ifconfig命令或/sbin/ifconfig命令查看即可.
1.4 端口号
   IP地址 - 使用IP地址可以定位到具体某台设备。
   端口号 - 可以定位到具体设备中的具体进程。
   网络编程需要提供:IP地址 和 端口号。
   端口号本质就是由16二进制组成的整数,范围是:0 ~ 65535,其中0 ~ 1024之间的端口号通常被系统占用,因此编程从1025开始使用。
2.基于tcp协议的编程模型
2.1 编程模型
服务器:
   (1)创建ServerSocket类型的对象,并提供端口号;
   (2)等待客户端的连接请求,调用accept()方法;
   (3)使用输入输出流进行通信;
   (4)关闭Socket并释放有关的资源;
客户端:   
   (1)创建Socket类型的对象,并提供服务器的IP地址和端口号;
   (2)使用输入输出流进行通信;
   (3)关闭Socket并释放有关的资源;
2.2 相关类和方法的解析
(1)ServerSocket类
   java.net.ServerSocket类主要用于描述服务器端的套接字(大插排)。
   ServerSocket(int port) - 根据参数指定的端口号来构造对象。
   Socket accept() - 用于侦听并等待客户端的连接请求。
   void close()
(2)Socket类
   java.net.Socket类是用于描述客户端的套接字,是两台机器间通信的端点(小插排)。
   Socket(String host, int port) - 根据参数指定的主机名和端口号来构造对象。
   InputStream getInputStream() - 用于获取当前套接字的输入流。
   OutputStream getOutputStream() - 用于获取当前套接字的输出流。
   void close() 

不积跬步,无以至千里;不积小流,无以成江海。

但愿能够帮助看到这篇文章的你! ^_^ 加油

猜你喜欢

转载自blog.csdn.net/qq474800358/article/details/80861630