天天看點

UDP 無連接配接上機案例3.4

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class UDPServer {
    public static void main(String[] args) {
        //1.建立伺服器端的DatagramSocket資料包,
        try {
            DatagramSocket datagramSocket=new DatagramSocket(8800);
            //2.建立資料報,用于接受使用者傳送過來的資料;存放于位元組數組;
            byte[]bytes=new byte[1024];
            DatagramPacket datagramPacket=new DatagramPacket(bytes,bytes.length);
            System.out.println("*****伺服器端已經啟動****");
            //使用receive方法接受;
            datagramSocket.receive(datagramPacket);
            //4.讀取資料;
            String info=new String(bytes,0,datagramPacket.getLength());
            //5.輸出資訊;
            System.out.println("伺服器,用戶端資訊為:"+info);
            //更新之後,伺服器端響應用戶端;
            InetAddress address=datagramPacket.getAddress();
            int port=datagramPacket.getPort();
            byte[]sinfo="歡迎您".getBytes();
            //更新2.建立資料報,包含socket資訊;
            DatagramPacket packet=new DatagramPacket(sinfo,sinfo.length,address,port);
            // 更新3;
            datagramSocket.send(packet);
            //關閉資源;
            datagramSocket.close();
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}      
UDP 無連接配接上機案例3.4

用戶端代碼:

import java.io.IOException;
import java.net.*;

public class UDPClient {
    public static void main(String[] args) {
        //1.定義伺服器的位址、端口号、資料;
        try {
            InetAddress address=InetAddress.getByName("localhost");
            int port=8800;
            byte[]data="使用者名:admin,密碼:123".getBytes();
            //2.建立資料報,包含發送的資料資訊,可以使用帶有4個參數的方法;
            DatagramPacket datagramPacket=new DatagramPacket(data,data.length,address,port);
            //3.建立DatagramSocket對象;
            DatagramSocket datagramSocket=new DatagramSocket();
            //4.向伺服器發送資料;
            datagramSocket.send(datagramPacket);
            更新之後代碼段;
            byte[]data2=new byte[1024];
            DatagramPacket packet2=new DatagramPacket(data2,data2.length);
            //2.接受伺服器響應的資料 ;
            datagramSocket.receive(packet2);
            //3.讀取資料;
            String reply=new String(data2,0,packet2.getLength());
            System.out.println("我是用戶端,伺服器端說:"+reply);
            //4.關閉資源;
            datagramSocket.close();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}      
UDP 無連接配接上機案例3.4