TCP--客户端简单登录

来源:互联网 发布:php移动接口开发 编辑:程序博客网 时间:2024/05/16 18:04
/*客户端通过键盘录入用户名服务端对这个用户名进行验证如果用户名存在,在服务端显示 xxx,已登录并在客户端显示,xxx,欢迎光临如果该用户不存在,在服务端显示 xxx,尝试登录并在客户端显示 xxx,该用户不存在最多登陆三次*/import java.io.*;import java.net.*;class UserThread implements Runnable {private Socket s;UserThread(Socket s) {this.s = s;}public void run() {try {InputStream in = s.getInputStream();OutputStream out = s.getOutputStream();BufferedReader skBufr = new BufferedReader(new InputStreamReader(in));BufferedReader bufr = new BufferedReader(new FileReader("users.txt"));PrintWriter pw = new PrintWriter(out, true);for(int i = 0; i < 3; i ++) {String name = skBufr.readLine();String user = null;boolean exist = false;while((user = bufr.readLine()) != null) {if(user.equals(name)) {exist = true;break;}}if(exist == true) {System.out.println(name + ", 已登录");pw.println(name + "欢迎光临");break;}else {System.out.println("....尝试登录中");pw.println("用户名不存在");}}s.close();} catch(Exception e) {throw new RuntimeException("校验失败");}}}class LoginClient {//客户端public static void main(String[] args) throws Exception {Socket s = new Socket("172.16.41.154", 10008);InputStream in = s.getInputStream();OutputStream out = s.getOutputStream();PrintWriter pw = new PrintWriter(out, true);BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));BufferedReader skBufr = new BufferedReader(new InputStreamReader(in));String line = null;for(int i = 0; i < 3; i ++) {line = bufr.readLine();if(line == null)break;pw.println(line);String info = skBufr.readLine();System.out.println("...." + info);if(info.contains("欢迎"))break;}bufr.close();s.close();}}class LoginServer {//服务器端public static void main(String[] args) throws Exception {ServerSocket ss = new ServerSocket(10008);while(true) {Socket s = ss.accept();new Thread(new UserThread(s)).start();}}}

原创粉丝点击