[Java] Socket/ServerSocket/Thread 控制台聊天程序–两人任意聊

//服务器端代码import java.io.*;import java.net.*;public class ServerTest3{public static void main(String[] args){try{//设置sever端的链接ServerSocket s = new ServerSocket(8888);Socket s1 = s.accept();//sever等待链接//实例化输出流OutputStream os = s1.getOutputStream();DataOutputStream dos = new DataOutputStream(os);//实例化输入流InputStream is = s1.getInputStream();DataInputStream dis = new DataInputStream(is);//实例化两个线程的对象Thread msr = new MyServerReader(dis);Thread msw = new MyServerWriter(dos);//启动线程msr.start();msw.start();}//捕获异常catch(SocketException e){System.out.println(e);}catch(IOException e){System.out.println(e);}}}//创建一个进程用来进行接收读取数据class MyServerReader extends Thread{private DataInputStream dis;public MyServerReader (DataInputStream dis){this.dis = dis;}public void run(){String msg;try{while(true){msg = dis.readUTF();System.out.println(“对方说:” + msg);if(msg.equals(“bye”)){System.out.println(“对方下线,程序退出”);System.exit(0);}}}catch(IOException e){System.out.println(e);}}}//创建一个进程用来写入并发送数据class MyServerWriter extends Thread{private DataOutputStream dos;public MyServerWriter(DataOutputStream dos){this.dos = dos;}public void run(){InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);String msg;try{while(true){msg = br.readLine();dos.writeUTF(msg);if(msg.equals(“bye”)){System.out.println(“自己下线,程序退出”);System.exit(0);}}}catch(IOException e){System.out.println(e);}}}

//客户端代码import java.io.*;import java.net.*;public class ClientTest3{public static void main(String[] args){try{//链接sever端Socket s1 = new Socket(“127.0.0.1”,8888);//实例化输入流InputStream is = s1.getInputStream();DataInputStream dis = new DataInputStream(is);//实例化输出流OutputStream os = s1.getOutputStream();DataOutputStream dos = new DataOutputStream(os);//实例化两个进程Thread mcr = new MyClientReader(dis);Thread mcw = new MyClientWriter(dos);//启动两个进程mcr.start();mcw.start();//捕获异常}catch(SocketException e){System.out.println(e);}catch(IOException e){System.out.println(e);}}}//创建一个进程用来进行接收读取数据class MyClientReader extends Thread{private DataInputStream dis;public MyClientReader(DataInputStream dis){this.dis = dis;}@Overridepublic void run(){String msg;try{while(true){msg = dis.readUTF();System.out.println(“对方说:”+msg);if(msg.equals(“bye”)){System.out.println(“对方下线,程序退出”);System.exit(0);}}}catch(IOException e){System.out.println(e);}}}//创建一个进程用来写入并发送数据class MyClientWriter extends Thread{private DataOutputStream dos;public MyClientWriter(DataOutputStream dos){this.dos = dos;}@Overridepublic void run(){InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);String msg;try{while(true){msg = br.readLine();dos.writeUTF(msg);if(msg.equals(“bye”)){System.out.println(“自己下线,程序退出”);System.exit(0);}}}catch(IOException e){System.out.println(e);}}}

打开两个控制台,先运行服务器端代码,再运行客户端代码,然后两端可以进行自由的通话

,免备案空间,香港服务器,美国服务器看看花儿冲破北疆漫漫寒冬,妖娆绽放;

[Java] Socket/ServerSocket/Thread 控制台聊天程序–两人任意聊

相关文章:

你感兴趣的文章:

标签云: