java网络编程案例9-1模拟微信聊天

代码如下:

SendTask类:

package GGS3;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;

public class SendTask implements Runnable{
    private int sendport;
    public SendTask(int sendport) {
    	this.sendport=sendport;
    }
    public void run() {
    	try {
			DatagramSocket ds=new DatagramSocket();
			Scanner sc=new Scanner(System.in);
			while(true) {
				String data=sc.nextLine();
				byte[] buf=data.getBytes();
				DatagramPacket dp=new DatagramPacket(buf, buf.length,InetAddress.getByName("127.0.0.255"),sendport);
				ds.send(dp);
				
			}
			} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
    }
}

ReceiveTask类:

package GGS3;

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

public class ReceiveTask implements Runnable {
   private int receivePort;
   public ReceiveTask(int receivePort) {
       this.receivePort=receivePort;
   }
   public void run() {
       try {
        DatagramSocket ds=new DatagramSocket(receivePort);
        byte[] buf=new byte[1024];
        DatagramPacket dp=new DatagramPacket(buf, buf.length);
        while(true) {
            ds.receive(dp);
            String str=new String(dp.getData(),0,dp.getLength());
            System.out.println("收到"+dp.getAddress().getHostAddress()+"发送的数据"+str);
        }
        } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
   }
}

WaChat类:

代码运行如下:

经验分享 程序员 微信小程序 职场和发展