java复习

2020-07-16使用多线程实现TCP通信

2020-07-16  本文已影响0人  智障猿
public class Send {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket(InetAddress.getByName("DESKTOP-0NL0JDK"), 10000);
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        bufferedWriter.write("多线程测试!");
        bufferedWriter.newLine();
        bufferedWriter.flush();
        //接收服务器反馈
        BufferedReader bufferedReader1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String line1 = bufferedReader1.readLine();
        System.out.println(line1);
        socket.close();
    }
}
public class Receiver {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(10000);
        while (true){
            Socket accept = serverSocket.accept();
            ServerThread serverThread = new ServerThread(accept);
            //开启新的线程
            new Thread(serverThread).start();
        }
    }
}
public class ServerThread implements Runnable{
    Socket s;
    //构造方法
    public ServerThread(Socket s) {
        this.s =s;
    }

    @Override
    public void run() {

        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
            //避免文件名冲突
            int count=0;
            File file = new File("Test\\txxt"+count+".txt");
            while (file.exists()){
                count++;
                file =  new File("Test\\txxt"+count+".txt");
            }
            BufferedWriter bw = new BufferedWriter(new FileWriter(file));
            String line = br.readLine();
            bw.write(line);
            bw.flush();

            //给出反馈
            BufferedWriter toSent = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
            toSent.write("服务器将数据写入txxt"+count+".txt");
            toSent.newLine();
            toSent.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
上一篇下一篇

猜你喜欢

热点阅读