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