第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java Socket應(yīng)用-基于UDP多用戶通信

標(biāo)簽:
Java
  1. UDP服务器线程处理类
    
    public class UDPServerThread extends Thread {
    DatagramSocket socket=null;
    DatagramPacket packet=null;
    byte[] data=null;
    public UDPServerThread(DatagramSocket socket,DatagramPacket packet,byte[] data){
        this.socket=socket;
        this.packet=packet;
        this.data=data;
    }
        public void run(){
            /*
             * 接收客户端数据
             */ 
                String info=new String(data, 0, packet.getLength());
                if(info!=null){
                System.out.println("我是服务器,客户端说:"+info);
                }               
                /*
                 * 向客户端响应数据
                 * */  
                //1.定义客户端的地址、端口号、数据
                InetAddress address=packet.getAddress();
                int port=packet.getPort();
                byte[] data2="欢迎你!".getBytes();
                //2.创建数据报,包含响应的数据信息
                DatagramPacket packet2=new DatagramPacket(data2, data2.length, address, port);
                //3.响应客户端
                try {
                    socket.send(packet2);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }

}

2.UDP服务器类

public class UDPSever1 {
public static void main(String[] args) throws IOException {
DatagramSocket socket=new DatagramSocket(8800);
System.out.println("服务器即将启动,等待客户端的连接");
byte[] data=new byte[1024];//创建字节数组,指定接收的数据包的大小
int count =0;
while(true){
DatagramPacket packet=new DatagramPacket(data, data.length);
socket.receive(packet);
//此方法在接收到数据报之前会一直阻塞
//4.读取数据
count++;
System.out.println("客户端数量"+count);
UDPServerThread UDPThread=new UDPServerThread(socket,packet,data);
UDPThread.start();
}
}
}

3.客户端类

public class UDPClient {

public static void main(String[] args) throws IOException {     
    /*
     * 向服务器端发送数据
     * */   
    //1.定义服务器的地址、端口号、数据
    InetAddress address=InetAddress.getByName("localhost");
    int port=8800;
    byte[] data="用户名:admin;密码:123".getBytes();
    //2/创建数据报,包含发送的数据信息
    DatagramPacket packet=new DatagramPacket(data, data.length, address, port);
    //3.创建DatagramSocket对象
    DatagramSocket socket=new DatagramSocket();
    //4.向服务器发送数据报
    socket.send(packet);
/*
 * 接收服务器端响应的数据
 * */
    //1.创建数据报,用于接收服务器端响应的数据
    byte[] data2=new byte[1024];//创建字节数组,指定接收的数据包的大小
    DatagramPacket packet2=new DatagramPacket(data2, data2.length);
    //2.接收服务器响应数据
    socket.receive(packet2);
    //3.读取数据
    String reply=new String(data2, 0, packet2.getLength());
    System.out.println("我是客户端,服务器说:"+reply);
    //4.关闭资源*/
    socket.close();
}

}

點擊查看更多內(nèi)容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消