Java学习之随堂笔记系列——day21

本文主要介绍了Java中的网络编程基础知识,包括网络编程三要素:协议、IP地址和端口号。详细讲解了UDP协议的特点和使用,以及如何进行UDP通信。同时,概述了TCP通信的工作流程,并给出了客户端和服务器端的实现思路。最后提到了文件上传的案例及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日内容:网络编程
1、网络编程三要素
    协议:数据传输的规范规则,常见的协议有:http协议,UDP协议、TCP协议
        UDP协议特点:无连接,传输效率高,但是偶尔会出现数据丢包现象,相对不安全。
        TCP协议特点:建立连接,传输效率相对低一点,数据安全不会丢失。

    ip地址:在互联网环境中,每台电脑都有一个唯一标识,就是ip地址。用于找到具体是哪一台电脑。
        查看当前电脑的ip地址:ipconfig
        查看两台计算机网络连接是否通畅:ping 对方ip地址

        InetAddress
                此类表示Internet协议(IP)地址

            public static InetAddress getByName​(String host):确定主机名称的IP地址。主机名称可以是机器名称,也可以是IP地址
            public String getHostName​():获取此IP地址的主机名
            public String getHostAddress​():返回文本显示中的IP地址字符串

    端口号:相当于门牌号,用于找到计算机中的哪个程序。计算机中正在运行的程序端口号唯一,不能冲突。
        端口号的范围:1-65525;一般1024以内的可能会被系统占用
2、UDP通信(了解)
    Socket:也叫套接字,这是一个包含ip地址和端口号的网络单位。例如:kg是一个重量单位,表示千克;km是一个长度单位,表示千米。
    发送端思路:
        1、创建核心对象DatagramSocket对象
            DatagramSocket​()
        2、创建数据包对象 DatagramPacket​对象
            DatagramPacket​(byte[] buf, int length, InetAddress address, int port)
        3、调用DatagramSocket对象的send方法发送消息
            send(DatagramPacket​ dp)
        4、释放资源,关闭DatagramSocket。
            close();
    接收端思路:
        1、创建核心对象DatagramSocket对象
            DatagramSocket​(int port)
        2、创建数据包对象 DatagramPacket​对象
            DatagramPacket(byte[] buf, int length);
        3、调用receive​(DatagramPacket p)接收数据,数据会存到参数p中
        4、从包中获取接收的数据以及接收的数据的长度
        5、释放资源,关闭DatagramSocket。
              close();

3、TCP通信
    客户端实现思路:
        1、创建客户端Socket对象
            Socket​(String host, int port)  :参数1是服务器的ip地址,参数2是服务器中接收端程序的端口号
        2、获取输出流,向服务器写消息 只有字节流
            public void tOutputStream()
        3、释放资源  close()
    服务器端实现思路:
        1、创建服务器端ServerSocket对象
            ServerSocket​(int port)
        2、等待客户端的连接
            Socket    accept​()
        3、通过连入的客户端Socket对象获取输入流对象,读取客户端发送过来的消息
        4、释放资源
    注意:Exception in thread "main" java.net.BindException: Address already in use (Bind failed)
        原因:端口号冲突
        解决:关闭之前的程序或者该端口号
4、案例:文件上传
    注意:发完了之后要告诉服务器以及上传结束了
         socket.shutdownOutput();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值