TCP客户端多线程

cilent

点击查看代码
package it_08;

import java.io.*;
import java.net.Socket;

//客户端
public class Demo3 {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("127.0.0.1",9090);
        BufferedReader br = new BufferedReader(new FileReader("server.txt"));
        OutputStream outputStream = socket.getOutputStream();
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream));
        String len;
        while((len=br.readLine())!=null){
            bw.write(len);
            bw.newLine();
            bw.flush();
        }
        //定义结束标记
        socket.shutdownOutput();
        //接收反馈
        InputStream inputStream = socket.getInputStream();
        byte[] bys = new byte[1024];
        int lent = inputStream.read(bys);
        System.out.println(new String(bys,0,lent));

        br.close();
        socket.close();
    }
}

server
点击查看代码
package it_08;

import java.net.ServerSocket;
import java.net.Socket;

public class Demo5 {
    public static void main(String[] args) throws Exception {
        ServerSocket ss = new ServerSocket(9090);

        while (true) {
            Socket socket = ss.accept();
            new Thread(new serverThread(socket)).start();
        }
    }
}

serverThread
点击查看代码
package it_08;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class serverThread implements Runnable {
    private Socket socket;
    @Override
    public void run() {
        try {
            int count = 0;
            InputStream inputStream = socket.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
            File file = new File("copy"+count+".txt");
            while(file.exists()){
                count++;
                file = new File("copy"+count+".txt");
            }
            BufferedWriter bw = new BufferedWriter(new FileWriter(file));
            String line;
            while ((line=br.readLine())!=null){
                bw.write(line);
                bw.newLine();
                bw.flush();
            }

            BufferedWriter bwServer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            bwServer.write("文件上传成功");
            bwServer.newLine();
            bwServer.flush();
            socket.close();
            br.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    public serverThread(Socket socket) {
        this.socket=socket;
    }
}

posted @ 2025-04-30 20:15  lfqyj  阅读(23)  评论(0)    收藏  举报