【幻化万千戏红尘】qianfengDay23-java基础学习:网络编程、TCP IP协议、端口Socket、ServerSocket

时间:2021-10-03 01:10:19

课程回顾:
线程安全的解决


今日内容:
网络:
通过外部的网络设备,将分布在不同区域的计算机连接在一起,
实现不同计算机之间的数据交互
不同的计算机想进行数据的交互,就必须得遵守相同的通信协议

TCP/IP协议:传输控制协议/网际协议
网络模型:
用书糊口
4层模型    五层模型     七层模型
应用层           应用层和表示层和会话层
传输层
互联网层
数据接口层   数据链路层和物理层

网络结构的程序分类:
1、B/S:浏览器/服务器
2、C/S:客户端/服务器

TCP/IP协议:是目前网络中使用最为广泛的通信协议
Transmission Control Protocal 传输控制协议
控制数据的传输
TCP是在不可靠的互联网中提供可靠的数据传输的协议
面向连接的,端到端数据传输client-server
TCP的三次握手(连接):
客户端先向服务端发送请求连接
服务端接收到之后,开辟存储单元,并返回消息
客户端接收到之后,会给服务端发送确认消息
一共是三次

Internet Protocol 网际协议 ip地址
IP地址:网络中计算机的标记,用于区分网络中计算机
32位组成,一般分为4部分,每部分的范围[0,255]
我们日常使用的IP都是十进制
IP的分类:
1类:*机关:0---126
2类:中等规模的公司128-191
3类:个人192-223
4类:组播224-249
5类:实验室250-255
127.0.0.1或localhost都是指的本机


端口号:具有网络功能的软件的标记
计算机端口数:256*256
端口号的范围[0,65535]
0-1023:目前已经被公认的或即将被公认的软件
1024-65535:任何软件都可以使用

通过IP和端口我们才可以定位计算机的某个软件

InetAddress类:互联网地址
IP地址的描述类
常用方法:
getLocalHost:获取本机的IP对象
getHostAddress:获取对象的IP地址字符串
getHostName:获取对象的主机名称
getByName:获取指定名称的IP对象
getAllByName:获取指定名称的所有IP对象


套接字:程序进行网络连接实现的数据交互,数据交互的一端就是套接字
简而言之:就是用于2个程序之间进行数据交互的端
将数据写入到套接字中,套接字会将数据传输到指定的套接字中
TCP:Client-Server
TCP协议就是将数据在客户端和服务端进行交互的一种协议
Socket:应用客户端
ServerSocket:应用服务端


TCP开发步骤:
1、创建套接字(连接)
2、获取对应的流对象
3、操作对应的流
4、关闭

Socket套接字:实现数据的交互,主要应用在客户端
常用构造:
Socket(String host, int port)
参数说明:
第一个参数:服务器的IP地址
第二个参数:服务端程序的端口号

常用方法:
getInputStream:获取输入流,用于读取信息
getOutputStream:获取输出流,用于发送消息
close:关闭套接字

ServerSocket:服务端套接字
常用构造:
ServerSocket(int port)
创建对象并监听端口号
常用方法:
accept: 监听客户端的连接
close:关闭

1对1聊天
read方法,如果套接字无关闭,无法读取到文件的末尾
文件传输:
流读取要发送的文件内容
将读取到的内容写出到套接字中
接收端从套接字中读取文件的内容
再通过流写出到本地

 

周四:
Sqlite数据库+反射
周五:
HTML+Servlet

下周内容:
Http协议+Servlet
XML解析
JSON解析
正则表达式