聊天室实现-客户端实现

Posted czgxxwz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊天室实现-客户端实现相关的知识,希望对你有一定的参考价值。

public class ClientSide {
    //服务端IP
    private String serverIP;
    //端口号
    private int port;

    public ClientSide(String serverIP,int port){
        this.serverIP=serverIP;
        this.port=port;
    }

    public void initClient(){
       try{
           //创建socket,连接服务端
           Socket client=new Socket(serverIP,port);
           //新建读取信息缓存区
           BufferedReader bufferedReader=null;
           //新建写入字符流
           PrintWriter printWriter=null;
           //控制台输入
            Scanner scanner = new Scanner(System.in);

           //获得输入流,将数据载入缓存区
           bufferedReader=new BufferedReader(new InputStreamReader(client.getInputStream()));
           //输出流,true为开启自动释放flush
           printWriter=new PrintWriter(client.getOutputStream(),true);
           //接收欢迎词
           System.out.println(readMessage(bufferedReader));
           String flag="";
           while (!flag.equals(Config.LoginSuccessCode)){
               //接收‘输入用户名‘
               System.out.println(readMessage(bufferedReader));
               //控制台输入
               String username = scanner.nextLine();
               sentMessage(printWriter,username);
               //接收‘输入密码‘
               System.out.println(readMessage(bufferedReader));
               //控制台输入
               String psw = scanner.nextLine();
               sentMessage(printWriter,psw);
               //得到登录结果
               flag=readMessage(bufferedReader);
               if(Config.LoginErrCode.equals(flag)){
                   System.out.println("---用户名密码不匹配,请重新登录!---");
               }
           }
           System.out.println("---欢迎使用聊天室,祝你聊天愉快---");
           //登录成功,开始聊天
           if(flag.equals(Config.LoginSuccessCode)){
               //读取信息线程
               new ReadClientThread(client.getInputStream()).start();
               //输入信息线程
               new SentClientThread(printWriter).start();

           }else{
               System.out.println("登录异常!");
           }


       }catch (Exception e){
           System.out.println("发生异常,请联系管理员!");
       }
    }

    /**
     * 读取信息
     * @param bufferedReader
     */
    public String readMessage(BufferedReader bufferedReader) {
        String clinetMessage=null;
        try {
            clinetMessage= bufferedReader.readLine();
           // System.out.println("服务端:"+clinetMessage);
        }catch (Exception e){
            System.out.println("发生异常,请联系管理员!");
            //e.printStackTrace();
        }
        return clinetMessage;
    }

    /**
     * 发送信息
     * @param printWriter
     * @param message
     */
    public void sentMessage(PrintWriter printWriter,String message){
        printWriter.println(message);
        printWriter.flush();
    }

    public static void main(String[] args){
        ClientSide clientSide=new ClientSide("127.0.0.1",5000);
        clientSide.initClient();
    }

}

  参考链接:https://blog.csdn.net/BlueSky_USC/article/details/54414860

以上是关于聊天室实现-客户端实现的主要内容,如果未能解决你的问题,请参考以下文章

聊天室实现-服务端代码

Java编程实例-tcp聊天室代码实现

Java Dome(实现一个简易版QQ聊天室)

Java实现简易聊天室

Android:在视图/活动/片段之间滑动切换

java实现多客户聊天功能