0
点赞
收藏
分享

微信扫一扫

线程练习(1)

米小格儿 2022-02-12 阅读 74

客户端服务器端交互

在单客户端与服务器聊天中引入线程,将发送消息和接收消息功能分别加入到线程中实现.

//服务器端
public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket=new ServerSocket(9999);
        Socket socket=serverSocket.accept();//监听

        new SenfThread(socket).start();
        new ReceiveThread(socket).start();

    }
}
//客户端
public class Client {
    public static void main(String[] args) throws IOException {

        Socket socket=new Socket("127.0.0.1",9999);
        //创建并启动发送线程
        new SenfThread(socket).start();
        new ReceiveThread(socket).start();

    }
}

//发送消息线程
public class SenfThread extends Thread{
    private Socket socket;
    private DataOutputStream out;
    public SenfThread(Socket socket) throws IOException {
        this.socket = socket;
        this.out=new DataOutputStream(socket.getOutputStream());
    }

    @Override
    public void run() {
        Scanner scanner=new Scanner(System.in);
        while(true){

            String s=scanner.next();
            try {
                if(socket.isClosed()||s.equals("886")){
                    break;
                }
                out.writeUTF(s);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

//接受消息线程
public class ReceiveThread extends Thread{
    private Socket socket;
    private DataInputStream in;

    public ReceiveThread(Socket socket) throws IOException {
        this.socket = socket;
        this.in = new DataInputStream(socket.getInputStream());
    }

    @Override
    public void run() {
        while (true) {
            try {
                String s = in.readUTF();
                System.out.println(s);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

举报

相关推荐

JavaSE线程练习

多线程题目练习

python线程简单练习

Java练习1

界面练习1

HTML练习1

0 条评论