1: 网络编程 (理解)
(1) 网络编程 :用 Java 语言实现计算机间数据的信息传递和资源共享
(2) 计算机网络 :是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及 网络通信协议 的管理和协调下,实现资源共享和信息传递的计算机系统。
(3)网络编程模型
(4)网络编程的三要素
A: IP地址 :网络中 设备的标识 ,不易记忆,可用 主机名
java提供了一个类 InetAddress 供我们使用:
获取任意主机: getByName()
主机名: getHostName()
主机Ip地址: getHostAddress()
B:端口 : 正在运行的程序的标识 。(物理端口 :网卡口,这里主要讲的是逻辑端口)
有效端口:0~65535,其中0~1024系统使用或保留端口。
:WINDOWS system32 driversetc services 文件,了解常用的 端口号分配 。
C:协议
UDP与TCP的区别 :
UDP : 数据打包, 有限制, 不连接, 效率高, 不可靠 举例 :发短信,邮件
TCP : 建立数据通道, 无限制, 效率低, 可靠 举例 :电话,视频
(3) socket 机制
Socket 套接字 :网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。
Socket原理机制:
A:通信的两端都有Socket。
B:网络通信其实就是Socket间的通信。
C;数据在两个Socket间通过IO传输。
(4)UDP协议发送和接收数据
发送:
创建UDP发送端的Socket对象
创建数据并把数据打包
发送数据
释放资源
接收:
创建UDP接收端的Socket对象
创建数据包用于接收数据
接收数据
解析数据包
释放资源
(5) TCP协议 发送和接收数据
发送:
创建TCP客户端的Socket对象
获取输出流,写数据
释放资源
接收:
创建TCP服务器端的Socket对象
监听客户端连接
获取输入流,读取数据
释放资源
TCP中出现的问题:
(6)案例:
A:UDP
a:最基本的UDP协议发送和接收数据
b:把发送数据改进为键盘录入
c:一个简易聊天小程序并用 多线程 改进
PS:多线程未展示,即多个用户向同一个客户端发送消息,这里面的可能存在的问题也有很多,这先不总结。
B:TCP
a:最基本的TCP协议发送和接收数据
b:服务器给出反馈
c:客户端键盘录入服务器控制台输出
d:客户端键盘录入服务器写到文本文件
e:客户端读取文本 文件服务器 控制台输出
f:客户端读取文本文件服务器写到文本文件
g:上传图片
h:多线程改进上传文件
ps :TCP这里将用到 数据流 操作,详见JAVA笔记(十九),