网络编程笔记

网络编程笔记

1、网络编程概述

什么是网络

由点和线构成,例如电脑和线路布局组成

什么是计算机网络

不同区域的电脑,通过线路连接,能够实现数据传递和资源共享的方式

什么是网络编程

数据传递和资源共享的具体技术实现

OSI七层模型

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

TCP/IP四层模型

应用层、传输层、网络层、网络接口层

2、网络编程三要素

协议

TCP:建立连接的可靠协议,需经历三次握手四次中断,传输效率低。例如:打电话

UDP:无连接的传输协议,不可靠、效率高。例如:发短信

IP

每台电脑的唯一标识,有IPV4和IPV6

IP分类: 有A类、B类、C类等IP分配,网络段逐渐增多,对应主机段逐渐减少

回环地址:127.0.0.1,用于本机地址的测试

Port

每个通讯软件的唯一标识

可以使用的端口: 0~65535

0~1023:系统已使用或保留的端口,建议不要使用

1024~65535: 可以自定义使用的端口

3、网络编程

INetAddress

可以获取ip地址对象的类

常用方法:获取本地主机、获取指定主机、获取所有主机等

TCP编程

建立连接

服务器实例化ServerSocket,指定自身端口

调用accept方法,用于等待客户端连接,连接后产生socket与客户端通讯

客户端实例化Socket,指定服务器的ip和端口

数据传输

客户端调用socket的getOutputStream拿到io流

调用write方法写入数据

服务器使用socket的getInputStream拿到io流

调用read方法获取数据

案例2

实现客户端上传图片到服务器

客户端:先从本地读图片资源,写到socket管道

服务器:从socket管道读出,写到指定服务器的D盘

案例3

TCP实现多个客户端发送数据给服务器

分析:接收多个客户端请求,所以需要循环的监听客户端 while(true)
并且,启动多线程去接收数据

案例4

用户的注册与登录案例,传输数据格式为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.匹配则返回’'登录成功"到客户端,否则返回“登录失败”

4、扩展UDP编程

没有服务器的概念,客户端与客户端的数据传输

通过数据包的方式发送和接收数据:DatagramPacket

有两个关键方法: receive、send

谁先启动? 接收方先启动

你可能感兴趣的:(笔记,java)