UDP传输(三)

package network.socket2;

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

public class DemoMoreThread {
    public static void main(String[] args) {
        new Send().start();
        new Receive().start();
    }


}

class Receive extends Thread{
    @Override
    public void run() {

        try {
            DatagramSocket socket=new DatagramSocket(6666);         //创建码头,要指定端口号
            DatagramPacket packet=new DatagramPacket(new byte[1024],1024);
            while (true) {
                socket.receive(packet);                     //开始接收

                byte[] arr = packet.getData();            //获取数据
                int len = packet.getLength();        //获取有效字节个数
                System.out.println(new String(arr, 0, len));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

class Send extends Thread{
    @Override
    public void run() {
        try {
            Scanner sc=new Scanner(System.in);
            DatagramSocket socket=new DatagramSocket();

            while(true){
                String str=sc.nextLine();
                if("quit".equals(str)){
                    break;
                }
                DatagramPacket packet=
                        new DatagramPacket(str.getBytes(),str.getBytes().length, InetAddress.getByName("127.0.0.1"),6666);
                socket.send(packet);
            }
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42547717/article/details/84031141