Java SocketプログラミングのUDPプログラミング


詳細は以下を参照してください.https://www.yuque.com/shizhiy...
Java SocketプログラミングのUDPプログラミング
UDPプロトコル(ユーザデータレポートプロトコル)は接続がなく、信頼性がなく、無秩序で、速度が速い      データ転送を行う場合は、まず転送するデータを64 kに制限したデータグラム(Datagram)と定義し、データレポートにデータ要求が到達するSocket(ホストアドレスとポート番号)を指定してから、データレポートを送信します.**      DatagramPacketクラスDatagramPacketクラスDatagramPacketクラスDatagramPacketクラスDatagramPacketクラスDatagramPacketクラスDatagramPacketクラスDatagramPacket      DatagramSocketクラス:エンドツーエンド通信を行うクラス
サーバ側実装手順
  • DatagramSocketを作成し、ポート番号
  • を指定します.
  • DatagramPacket
  • の作成
  • クライアントから送信データ情報
  • を受け付ける.
  • データ
  • を読み出す.
    //    ,    UDP     
    //1、      DatagramSocket,    
    DatagramSocket socket =new datagramSocket(10010);
    //2、     ,            
    byte[] data =newbyte[1024];//
    DatagramPacket packet =newDatagramPacket(data,data.length);
    //3、          
    socket.receive(packet);//                
    //4、    
    String info =newString(data,o,data.length);
    System.out.println("     ,      "+info);
    
    
    //=========================================================
    //        
    //1、        、   、  
    InetAddress address = packet.getAddress();
    int port = packet.getPort();
    byte[] data2 = "   !".geyBytes();
    //2、     ,         
    DatagramPacket packet2 = new DatagramPacket(data2,data2.length,address,port);
    //3、     
    socket.send(packet2);
    //4、    
    socket.close();

    クライアント実装手順
  • は、送信情報
  • を定義する.
  • は、送信する情報
  • を含むDatagramPacketを作成する.
  • DatagramSocket
  • の作成
  • 送信データ
  • //   
    //1、        、   、  
    InetAddress address =InetAddress.getByName("localhost");
    int port =10010;
    byte[] data ="   :admin;  :123".getBytes();
    //2、     ,         
    DatagramPacket packet = newDatagramPacket(data,data,length,address,port);
    //3、  DatagramSocket  
    DatagramSocket socket =newDatagramSocket();
    //4、        
    socket.send(packet);
    
    
    //          
    //======================================
    //1、     ,            
    byte[] data2 = new byte[1024];
    DatagramPacket packet2 = new DatagramPacket(data2,data2.length);
    //2、          
    socket.receive(packet2);
    String raply = new String(data2,0,packet2.getLenth());
    System.out.println("     ,    :"+reply);
    //4、    
    socket.close();