• 网络通信 三要素


    网络通信的三要元素 

    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. }

  • 相关阅读:
    unique_ptr的常规使用
    企业数据流转5个大坑,你最烦哪个?
    #微信小程序创建(获取onenet平台数据)
    手写diff算法
    vue和react项目中实现 px 转 vm
    EasyUI动态加载组件
    P1563 [NOIP2016 提高组] 玩具谜题(模拟、vertor、结构体)
    7-11 TreeSet
    小波去噪算法的简易实现及其扩展(小波锐化、高斯拉普拉斯金字塔去噪及锐化)之一。
    仿真模型简单介绍
  • 原文地址:https://blog.csdn.net/m0_46290090/article/details/133940712