第一阶段模块四 网络编程

笔记内容输出来源:拉勾教育Java大数据学科 训练营;

第十九章 网络编程
    七层网络模型
    协议的概念
        计算机在网络中实现通信就必须有一些约定或者规则,这种约定和规则就叫做通信协议,通信协议
        可以对速率、传输代码、代码结构、传输控制步骤、出错控制等制定统一的标准。
    TCP协议
        传输控制协议(Transmission Control Protocol),是一种面向连接的协议,类似于打电话。
        建立连接 => 进行通信 => 断开连接
        在传输前采用"三次握手"方式。
        在通信的整个过程中全程保持连接,形成数据传输通道。
        保证了数据传输的可靠性和有序性。
        是一种全双工的字节流通信方式,可以进行大数据量的传输。
        传输完毕后需要释放已建立的连接,发送数据的效率比较低。
    UDP协议
        用户数据报协议(User Datagram Protocol),是一种非面向连接的协议,类似于写信。
        在通信的整个过程中不需要保持连接,其实是不需要建立连接。
        不保证数据传输的可靠性和有序性。
        是一种全双工的数据报通信方式,每个数据报的大小限制在64K内。
        发送数据完毕后无需释放资源,开销小,发送数据的效率比较高,速度快。
    IP地址
        IP地址是互联网中的唯一地址标识,本质上是由32位二进制组成的整数,叫做IPv4,当然也有128
        位二进制组成的整数,叫做IPv6,目前主流的还是IPv4。
        日常生活中采用点分十进制表示法来进行IP地址的描述,将每个字节的二进制转化为一个十进制整
        数,不同的整数之间采用小数点隔开。
    端口号
        网络编程需要提供:IP地址 + 端口号,组合在一起叫做网络套接字:Socket。
        端口号本质上是16位二进制组成的整数,表示范围是:0 ~ 65535,其中0 ~ 1024之间的端口号通
        IP地址 - 可以定位到具体某一台设备。
        端口号 - 可以定位到该设备中具体某一个进程。
    常被系统占用,建议编程从1025开始使用。
    基于tcp协议的编程模型
        编程模型
            服务器
                (1)创建ServerSocket类型的对象并提供端口号;
                (2)等待客户端的连接请求,调用accept()方法;
                (3)使用输入输出流进行通信;
                (4)关闭Socket;
            客户端:
                (1)创建Socket类型的对象并提供服务器的IP地址和端口号;
                (2)使用输入输出流进行通信;
                (3)关闭Socket;
        ServerSocket类
            java.net.ServerSocket类主要用于描述服务器套接字信息(大插排)。
            ServerSocket(int port) 根据参数指定的端口号来构造对象
            Socket accept() 侦听并接收到此套接字的连接请求
            void close() 用于关闭套接字
        Socket类
            java.net.Socket类主要用于描述客户端套接字,是两台机器间通信的端点(小插排)。
            Socket(String host, int port) 根据指定主机名和端口来构造对象
            InputStream getInputStream() 用于获取当前套接字的输入流
            OutputStream getOutputStream() 用于获取当前套接字的输出流
            void close() 用于关闭套接字
        注意事项
            客户端 Socket 与服务器端 Socket 对应, 都包含输入和输出流。
            客户端的socket.getInputStream() 连接于服务器socket.getOutputStream()。
            客户端的socket.getOutputStream()连接于服务器socket.getInputStream()
     URL类
        URL(String spec) 根据参数指定的字符串信息构造对象
        String getProtocol() 获取协议名称
        String getHost() 获取主机名称
        int getPort() 获取端口号
        String getPath() 获取路径信息
        String getFile() 获取文件名
        URLConnection openConnection() 获取URLConnection类的实例
        java.net.URL
        <传输协议>://<主机名>:<端口号>/<资源地址>
    URLConnection类
        java.net.URLConnection类是个抽象类,该类表示应用程序和URL之间的通信链接的所有类的超
        类,主要实现类有支持HTTP特有功能的HttpURLConnection类。
        InputStream getInputStream() 获取输入流
        void disconnect() 断开连接
     基于udp协议的编程模型
        接收方:
            (1)创建DatagramSocket类型的对象并提供端口号;
            (2)创建DatagramPacket类型的对象并提供缓冲区;
            (3)通过Socket接收数据内容存放到Packet中,调用receive方法;
            (4)关闭Socket;
        发送方:
            (1)创建DatagramSocket类型的对象;
            (2)创建DatagramPacket类型的对象并提供接收方的通信地址;
            (3)通过Socket将Packet中的数据内容发送出去,调用send方法;
            (4)关闭Socket;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据专家大神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值