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();
}
}
点击查看代码
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();
}
}
}
点击查看代码
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;
}
}

浙公网安备 33010602011771号