• JAVA-网络编程


    网络编程

    网络基本概念

    网络模型:
    物理层、数据链路层、网络层、传输层(UDP、TCP)、应用层、会话层、表示层 --- http、ftp、pop3、SMATP(电邮)
    网络协议:
    服务商和浏览器厂商之间约定的解析方式。
    IP地址:
    实际上是在网络中用于标记主机。
    取值范围是0 - 255,一共能表示2^32个取值。
    域名:厂商提供的便于记忆的字符串
    一级域名:用于表示的性质
    二级域名:随便是啥/公司的名称/标记
    三级域名:表示具体的应用
    DNS服务器:将域名和IP地址进行映射。
    端口:计算机和外界进行信息交互的媒介。端口号:0-65535,其中0-1024中的部分端口被计算机内部占用的。

    SocketAddress
    是一个抽象类,使用时创建InetSocketAddress子类对象。传入一个IP地址和端口。

    UDP

    特点:
    1、实际上是一个基于网络进行数据传输的流。
    2、不建立连接的
    3、不可靠,可能会产生数据的丢失
    4、对数据进行封包,每一个包不超过64KB
    5、传输速度相对较快(没啥用)
    6、适用于要求速度但对可靠性依赖较低的场景


    发送端:
    1、创建UDP对象
    DatagramSocket ds = new DatagramSocket();
    2、准备数据包,将数据以及地址放入到数据包中
    DatagramPacket dp = new DatagramPacket("你好".getBytes(), "你好".getBytes().length, new InetSocketAddress("localhost", 8090)
    3、发送数据包
    ds.send(dp);
    4、关流

    接收端:
    1、创建UDP对象,绑定监听的端口号
    DatagramSocket ds = new DatagramSocket(port);
    2、准备数据包。
    DatagramPacket dp = new DatagramPacket(new byte[1024], 1024);
    3、接受数据包
    ds.receive(dp);
    4、关流
    5、解析数据
    byte[] data = dp.getData();


    先启动接收端再启动发送端
    255.255.255.255:广播地址,只要在一个局域网内都会收到数据。


    TCP
    特点:
    1、基于网络进行数据传输的流
    2、需要建立连接,需要三次交汇。
    请求建立连接
    回应是否连接
    确认建立连接
    3、可靠,保证数据是不会丢失的
    4、理论上不限制数据大小
    5、传输速度较慢
    6、适用于要求可靠性但是对速度依赖性相对较低的场景。文件上传/下载

    客户端:
    创建Socked 对象
    Socket s = new Socket();
    发起连接,绑定要连接的地址和端口号
    s.connect(new InetSocketAddress("localhost", 8090));
    获取输出流,并写入数据
    OutputStream out = s.getOutputStream();
    s.shutdownOutput();
    关闭输出流
    关闭Socked对象产生流

    服务器端:
    创建服务器ServerSocket对象
    ServerSocket ss = new ServerSocket(8090);
    接收连接,获取到要连接过来的Socket对象
    Socket s = ss.accept();
    获取输入流,读取数据,关闭输入流
    InputStream in = s.getInputStream();
    s.shutdownInput();
    关流

  • 相关阅读:
    Java SE(2)
    Java SE(1)
    第二次作业
    Markdown 进阶
    关于主题
    Markdown入门指南
    网络游戏架构与微服务架构简单对比
    微服务框架的存储架构
    轻量级微服务框架的通信架构
    页面静态化
  • 原文地址:https://www.cnblogs.com/xiaoluohao/p/11461717.html
Copyright © 2020-2023  润新知