• 网络编程.


    网络编程就相当于通过网络进行数据的传输,可以传给别人,不仅限于自己;

    常见软件架构

    BS优点

    1.不需要开发客户端,只需要页面+服务器

    2.不用下载

    缺点

    如果应用过大

    cs优点

    1.画面精美

    缺点

    1.客户端,服务端都要开发

    三要素:

    IP

    设备在网络中的地址,是唯一的标识

    端口号

    应用程序在设备中唯一的标识

    协议

    数据在网络中传输的规则,常见的协议有UDP,TCP

    UDP协议

    • 用户数据报协议
    • UDP是面向无连接通信协议。速度快,有大小限制(64K),数据不安全,易丢失数据

    单播

    组播

    广播

    发送信息

    1. //绑定端口,以后就是从这个端口往外发
    2. //空参:所有可用的端口随机一个进行使用
    3. //有参:指定端口号进行绑定
    4. //创建DatagramSocket对象
    5. DatagramSocket ds = new DatagramSocket();//单播,广播
    6. //MulticastSocket ms = new MulticastSocket();//组播
    7. //打包数据
    8. String str = "我超牛";
    9. byte[]bytes = str.getBytes();
    10. InetAddress address = InetAddress.getByName("127.0.0.1");
    11. int port = 10086;
    12. //DatagramPacket(传输的信息,传输的信息的长度,ip,端口号);
    13. DatagramPacket dp = new DatagramPacket(bytes,bytes.length,address,port);
    14. //发送数据
    15. ds.send(dp);
    16. ds.close();

    接收信息

    1. //创建对象
    2. //在接收的时候一定要绑定端口
    3. //绑定的端口一定要与发送的端口保持一致
    4. DatagramSocket ds = new DatagramSocket(10086);
    5. //组播接收数据
    6. // InetAddress address = InetAddress.getByName("224.0.0.1");
    7. //ms.joinGroup(address);
    8. //接收数据包
    9. byte[]bytes = new byte[1024];
    10. DatagramPacket dp = new DatagramPacket(bytes,bytes.length);
    11. ds.receive(dp);
    12. //解析数据包
    13. byte[]data = dp.getData();
    14. int len = dp.getLength();
    15. InetAddress address = dp.getAddress();
    16. int port = dp.getPort();
    17. System.out.println(new String(data,0,len));
    18. ds.close();

    TCP协议

    • 传输控制协议
    • TCP是面向连接的通信协议
    • 速度慢,没有大小限制,数据安全

    客户端

    ①创建客户端的Socke对象与指定服务器连接

    ②获取输入流,写数据

    ③释放资源

    服务器

    ①创建客户端的Socke对象(SeverSocket)

    ②监听客户端连接,返回Socket对象

    ③获取输入流,读数据,并把数据显示在控制台

    ④释放资源

    俩者连接的底层原理

    服务端先运行,等待客户端的连接(三次握手协议保证连接的建立)

    断开连接的底层原理是四次挥手协议

    三次握手:客户端向服务端申请连接,服务端返回一个响应,客户端再次发送确认信息,完成连接(确保连接)

    四次挥手:客户端发出取消连接,服务端返回一个响应表示收到,服务端将剩下的数据处理完毕再向客户端发送确认信息,客户端接收并确认,连接断开(确保断开,且数据处理完毕)

  • 相关阅读:
    半导体工厂将应用哪些制造创新技术?
    【前端版】分布式医疗云平台【Open-his 环境搭建、前台 vue-element-ui 搭建】(十六)
    mysql代码
    自我实现tcmalloc的项目简化版本
    JVM面试题(二)
    信息学奥赛一本通:1155:回文三位数
    【HuggingFace】Transformers(V4.34.0 稳定)支持的模型
    游戏开发常遇到数据一致性BUG,怎么解?
    深入理解JS作用域链与执行上下文
    第2章 传输网
  • 原文地址:https://blog.csdn.net/qq_74455082/article/details/132947871