Socket--聊天室

来源:互联网 发布:json字符串转化成数组 编辑:程序博客网 时间:2024/06/14 02:25

服务器端:

package TalkRoom1;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class Service {      private static ServerSocket service;public static void main(String [] args) throws IOException{      service = new ServerSocket(8888);      Socket socket=null;      System.out.println("等待客户端连接:::");      socket= service.accept();      System.out.println("连接成功");      talk talk=new talk(socket);      talk.start();         listen listen=new listen(socket);         listen.start();                }    }
处理输入流类:

class talk extends Thread{Socket socket; InputStream is = null;InputStreamReader isr=null; BufferedReader br=null;  String info;public talk(Socket socket) throws IOException{this.socket=socket;this.br=new BufferedReader(new InputStreamReader(socket.getInputStream()));}  public  void run(){ while(true){try{info = br.readLine();  System.out.println(info);}catch(Exception ex){ex.printStackTrace();}  }}}
处理输出流类:

class listen extends Thread{Socket socket;PrintWriter pw=null; Scanner scanner=new Scanner(System.in);String s=null;public listen(Socket socket) throws IOException{this.socket=socket;//设为true :自动缓冲this.pw =new PrintWriter(socket.getOutputStream(),true);}public void run(){while(true){     s= scanner.next();    pw.println(s);}}}

客户端类:

package TalkRoom1;import java.net.Socket;import java.net.UnknownHostException;public class Client {public static void main(String[] args) throws UnknownHostException, Exception {// TODO Auto-generated method stub     System.out.println("请输入聊天内容:");             Socket socket=new Socket("localhost",8888);            listen listen=new listen(socket);            listen.start();            talk talk=new talk(socket);          talk.start();}}

如果运行中关闭服务器端:客户端会报connection reset错误   现在还不知道怎么弄



原创粉丝点击