发送端
package run;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class FileDemo {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
Socket socket = new Socket("127.0.0.1",8888);
OutputStream os = socket.getOutputStream();
PrintWriter pr = new PrintWriter(os);
while (true) {
System.out.println("请说:");
pr.println(sc.nextLine());
pr.flush();
}
}
}
接收端
package run;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.*;
public class Account {
private static final ExecutorService EX = new ThreadPoolExecutor(3,5,3
, TimeUnit.SECONDS,new ArrayBlockingQueue<>(5),
Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
while (true) {
Socket socket = serverSocket.accept();
System.out.println(socket.getInetAddress() + "上线了");
Runnable er = new HisThread(socket);
EX.execute(er);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
任务线程
package run;
import java.io.*;
import java.net.Socket;
public class HisThread implements Runnable{
private Socket socket;
public HisThread(Socket socket){
this.socket = socket;
}
@Override
public void run() {
try {
InputStream is = socket.getInputStream();
BufferedReader bf = new BufferedReader(new InputStreamReader(is));包装成缓冲字符输出流
String sr;
while ((sr = bf.readLine()) != null){
System.out.println("收到来自IP地址为:" + socket.getLocalAddress() + "的消息:" + sr );
}
} catch (Exception e) {
System.out.println(socket.getInetAddress() + "下线了");
}
}
}