网络编程笔记

    技术2022-07-11  71

    网络编程笔记

    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

    谁先启动? 接收方先启动

    Processed: 0.020, SQL: 12