1. 程式人生 > 其它 >網路程式設計:10(UDP聊天實現)

網路程式設計:10(UDP聊天實現)

UDP聊天實現

  • UDP聊天

    • 傳送方;

    • 接收方;

     

 

  • 傳送方:

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetSocketAddress;

    /**
    * 傳送方:
    *
    *
    */
    public class UdpSenderDemo01 {
       public static void main(String[] args) throws Exception{

           DatagramSocket socket = new DatagramSocket(8888);

           //準備資料:控制檯讀取
           BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

           while(true){
               String data=reader.readLine();
               byte[] datas=data.getBytes();

               DatagramPacket packet=new DatagramPacket(datas,0,datas.length,
                       new InetSocketAddress("localhost",6666));

               socket.send(packet);
               if(data.equals("bye")){
                  break;
              }
          }


           socket.close();

      }
    }

     

  • 接收方:

    import java.net.DatagramPacket;
    import java.net.DatagramSocket;

    /**
    * 接收方:
    *
    */
    public class UdpReceivedDemo01 {
       public static void main(String[] args) throws Exception {


           DatagramSocket socket = new DatagramSocket(6666);


           while (true) {

               //準備接收包裹:
               byte[] container = new byte[1024];
               DatagramPacket packet=new DatagramPacket(container,0,container.length);
               socket.receive(packet);//阻塞式接收包裹

               //斷開連線
               byte[] data = packet.getData();
               String receivedData=new String(data,0,data.length);

               System.out.println(receivedData);
               if(receivedData.equals("bye")){
                   break;
              }

          }

           socket.close();

      }
    }