由点和线构成,例如电脑和线路布局组成
不同区域的电脑,通过线路连接,能够实现数据传递和资源共享的方式
数据传递和资源共享的具体技术实现
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
应用层、传输层、网络层、网络接口层
TCP:建立连接的可靠协议,需经历三次握手四次中断,传输效率低。例如:打电话
UDP:无连接的传输协议,不可靠、效率高。例如:发短信
每台电脑的唯一标识,有IPV4和IPV6
IP分类: 有A类、B类、C类等IP分配,网络段逐渐增多,对应主机段逐渐减少
回环地址:127.0.0.1,用于本机地址的测试
每个通讯软件的唯一标识
可以使用的端口: 0~65535
0~1023:系统已使用或保留的端口,建议不要使用
1024~65535: 可以自定义使用的端口
可以获取ip地址对象的类
常用方法:获取本地主机、获取指定主机、获取所有主机等
建立连接
服务器实例化ServerSocket,指定自身端口
调用accept方法,用于等待客户端连接,连接后产生socket与客户端通讯
客户端实例化Socket,指定服务器的ip和端口
数据传输
客户端调用socket的getOutputStream拿到io流
调用write方法写入数据
服务器使用socket的getInputStream拿到io流
调用read方法获取数据
实现客户端上传图片到服务器
客户端:先从本地读图片资源,写到socket管道
服务器:从socket管道读出,写到指定服务器的D盘
TCP实现多个客户端发送数据给服务器
分析:接收多个客户端请求,所以需要循环的监听客户端 while(true) 并且,启动多线程去接收数据
用户的注册与登录案例,传输数据格式为json
注册分析:
1.客户端准备好注册的数据,封装成:{id:1001,name:zs,pwd:123,age:30}
2.发送到服务器端,在服务器端中拆分并取出id的值
3.通过Properties加载配置文件,判断key是否匹配id值
4.匹配则返回’'已注册"到客户端,否则返回“注册成功”,并追加存储数据到配置文件
登录分析:
1.客户端准备好登录的数据,封装成:{id:1001,pwd:123}
2.发送到服务器端,在服务器端中拆分并取出id和pwd的值
3.Properties加载配置文件,根据id为key取出对应的value值
4.拆分配置文件的value值,取出id和pwd与客户端的匹配
5.匹配则返回’'登录成功"到客户端,否则返回“登录失败”
没有服务器的概念,客户端与客户端的数据传输
通过数据包的方式发送和接收数据:DatagramPacket
有两个关键方法: receive、send
谁先启动? 接收方先启动