2020.12.18 网络编程基础,网络编程三要素,TCP通信,Socket类,ServerSocket

网络基础
软件架构
C/S架构:客户端与服务器端的一种架构,将任务合理的分配给客户和服务器端,就是有两端
B/S架构:浏览器和服务器端的架构,简化了系统开发和维护(常用)

B/S架构和C/S架构的区别

  • C/S架构是基于局域网的,B/S架构是基于广域网的。
  • 硬件环境不同:C/S建立在专用网络上,对数据安全性要求高,数据存于本地,类似于QQ
  • 对程序的架构不同,C/S权限多次校验,B/S更倾向于优化速度
  • 用户接口不同:C/S架构在Windows平台上面跑,B/S建立在浏览器上面
    两者相同点
    都是基于网络编程,就是一定是在协议之下完成的,实现两台计算机的通信程序

网络通信协议
网络通信协议:是计算机必须尊从的一种协议,协议对数据的传输格式。传输步骤都要统一规定
TCP/IP:TCP(传输控制协议)和IP(英特网互联协议),定义了计算机如何联网。

协议分类
TCP协议:控制传输协议,面向链接的通信协议,数据传输之前就先建立链接
三次握手
在数据发送准备阶段,客户端和服务器端通过三次交互,保证链接的可靠性
一、客户端向服务器端发送请求链接
二、服务器端返回给客户端信息,同意链接
三、客户端再次向服务器端发送确认信息,表示已经连接好了
目的:保证通过链接进行数据传输,另一端就是我们要找的对象

网络编程三要素:
1.需要协议:计算机必须遵守协议
2.IP地址:只有得到了地址才能发送数据,不然不能确认发送给谁
3.端口号:端口号就是唯一表示设备的进程(常用8080)
利用协议+IP地址+端口号三要素,就可以表示网络中任意一个进程,呢吗进程之间就可以利用这个表示进行操作

TCP通信
目的:实现两台计算机之间的交互,通信两端要严格区分客户局端和服务器端
两端通信步骤
1.先启动服务器端,等待客户端链接
2.客户端需要注定链接服务器端,链接成功才能通信,服务器端口不可以主动链接客户端

实现TCP通信需要实现的两个类

  • 客户端:创建Socket对象,创建之后就相当于创建了客户端,向服务器端发送链接请求,服务器端会送一个请求表示已经链接成功,连着就建立了通信。
  • 服务器端:创建ServerSocket对象,创建之后就相当于,开启了一个服务,等待客户链接

Socket类
Socket类,实现客户端套接字,套接字指的是两台设备之间通讯端点。
构造方法
Socket(String host,int port);创建一个Socket对象
host:写IP地址,写自己发信息给自己,写别人的就是自己发信息给别人,为null就是本机
host:主要是用来喝服务器端的端口号。客户端拿着端口号去找服务器,相同的才能建立链接
成员方法
socket.getInputStream();---->套接字输入流;返回一个InputStream
socket.getOutputStream();--->套接字输出流;返回一个OutputStream
socket.close();--->关闭Socket

ServerSocket类
serverSocket实现了服务器端的套接字,该对象等待通过网络请求
构造方法
ServerSocket(int port);--->使用构造方法获得ServerSocket对象
post:当post喝客户端的post相同的时候就建立连接
成员方法
server.accept();--->监听并接收链接,返回一个Socket对象,用于实现通信
客户端代码演示:

服务器端代码演示*

注意:read方法都是读取的对面写给自己的,write都是写给对面的

文件上传案例
步骤:
1.在客户端中,通过普通输入流,从硬盘中读取数据到客户端内存中
2.在客户端中通过Socket对象的输出流,把从文件中读取到的数据写给服务器端
3.在服务器端通过Socket对象的输入流,把客户端传过来的数据写道服务器内存中
4.在服务器端通过普通的输出流,把读取到内存的数据写入文件中
文件上传原理图解

文件上传客户端代码

服务器端读取客户端传入的数据并写入文件中代码

注意:是客户端端口号抓取服务器端端口号,端口号就能把信息穿过去

原文地址:https://www.cnblogs.com/tushao/p/14176650.html