//发送消息的线程 package 实验1; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.util.Scanner; public class SendThread extends Thread{ private Socket send; public SendThread(Socket send){ this.send = send; } public void run() { OutputStream os; try { while(true){ os = send.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw); PrintWriter pw = new PrintWriter(bw); Scanner sc = new Scanner(System.in); String send = sc.nextLine(); if(!send.equalsIgnoreCase("exit")){ pw.println(send); pw.flush(); } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
//接收消息的线程 package 实验1; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Socket; public class ReciveThread extends Thread{ private Socket recive; public ReciveThread(Socket recive){ this.recive = recive; } public void run() { InputStream is; try { while(true){ is = recive.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String recive = br.readLine(); System.out.println(recive); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
//客户端充当 用户1 package 实验1; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(String[] args) { try { Socket s = new Socket("localhost",55555); SendThread se = new SendThread(s); ReciveThread re = new ReciveThread(s); se.start(); re.start(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
//服务器端充当 用户2 package 实验1; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(55555); Socket s = ss.accept(); SendThread se = new SendThread(s); ReciveThread re = new ReciveThread(s); se.start(); re.start(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
JAVA简单多线程一对一聊天
最新推荐文章于 2022-02-09 18:28:24 发布