• 网络通信 三要素


    网络通信的三要元素 

    1. IP地址
    2. 端口号
    3. 协议
      1. package InetAddressTest;
      2. import java.net.InetAddress;
      3. public class InetAddress1 {
      4. public static void main(String[] args)throws Exception {
      5. // InetAddress的使用
      6. //1:获取本机IP地址对象
      7. InetAddress ip1= InetAddress.getLocalHost();
      8. System.out.println(ip1.getHostName());
      9. System.out.println(ip1.getHostAddress());
      10. //2:获取指定的IP地址 或者域名的IP地址
      11. InetAddress ip2= InetAddress.getByName("www.baidu.com");
      12. // InetAddress ip2= InetAddress.getByName("www.baidu.com");
      13. System.out.println(ip2.getHostName());
      14. System.out.println(ip2.getHostAddress());
      15. //ping IP == www.baidu.com
      16. System.out.println(ip2.isReachable(6000));
      17. }
      18. }

      端口号

    我们自己开发的程序用注册端口

    协议 

     

     

    案例代码

    客户端

    1. package UDP12;
    2. import java.net.DatagramPacket;
    3. import java.net.DatagramSocket;
    4. import java.net.InetAddress;
    5. /*
    6. * 完成UDP 通信快速入门 实现发1收1*/
    7. public class Client {
    8. public static void main(String[] args) throws Exception{
    9. // 1创建客户端对象
    10. DatagramSocket socket= new DatagramSocket(8888);
    11. //2创建数据包对象封装要发出去的数据
    12. /* public DatagramPacket(byte buf[], int length,
    13. InetAddress address, int port)
    14. 参数一 封装要发出去的数据
    15. 参数二 我要发的参数大小
    16. 参数三 服务端IP地址
    17. 参数四 服务端端口
    18. */
    19. byte[]bytes= "我是客户端 我是abc".getBytes();
    20. DatagramPacket packet =new DatagramPacket(bytes,bytes.length,
    21. InetAddress.getLocalHost(),6666);
    22. // 3:开始正式发送数据包的数据发出去
    23. socket.send(packet);
    24. System.out.println("客户端发送完毕~~");
    25. //释放发送
    26. socket.close();
    27. }
    28. }

    服务端

    1. package UDP12;
    2. //完成UDP通信服务端
    3. import java.net.DatagramPacket;
    4. import java.net.DatagramSocket;
    5. public class Server {
    6. public static void main(String[] args) throws Exception{
    7. //1创建一个服务端对象
    8. System.out.println("---------服务端启动---------");
    9. DatagramSocket socket= new DatagramSocket(6666);
    10. //2 创建数据对象用接收数据
    11. byte [] buffer=new byte[1024*64]; //1KB * 64= 64KB
    12. DatagramPacket packet=new DatagramPacket(buffer,buffer.length);
    13. //3:开始正式设用数据包接收客户端发来的数据
    14. socket.receive(packet);
    15. //4:字节数组中的数据打印出来
    16. //接收多少倒出多少
    17. int lin= packet.getLength();
    18. String rs=new String(buffer,0,lin);
    19. System.out.println(rs);
    20. System.out.println(packet.getAddress().getHostAddress());
    21. System.out.println(packet.getPort());
    22. //释放发送
    23. socket.close();
    24. }
    25. }

  • 相关阅读:
    如何使用阿里云国际版控制台使用海外云服务器-Unirech
    当下最强的 AI art 生成模型 Stable Diffusion 最全面介绍
    微服务框架 SpringCloud微服务架构 16 SpringAMQP 16.9 消息转换器
    Servlet中Session会话追踪的实现机制
    邮件群发软件
    C++面试八股文:用过std::set/std::map吗?
    Acwing第 67 场周赛
    让chatgpt编写一个微信小程序的对话页面,它是这么整的,我懵了
    (三十)大数据实战——HBase集成部署安装Phoenix
    Qt QSVG使用详解
  • 原文地址:https://blog.csdn.net/m0_46290090/article/details/133940712