Java-Socket TCP-并发登录

来源:互联网 发布:java 判断是否为null 编辑:程序博客网 时间:2024/05/20 16:40


import java.io.BufferedReader;import java.io.FileReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Valua{public static void main(String[] args){}}//需求,3次内登录则欢迎,可操作数据,否则退出//class TClient{public static void main(String args[]) throws Exception{//建立连接Socket socket=new Socket("192.168.0.133",8090);//得到控制台字符String send=null;BufferedReader reader =null;//执行三次操作for(int i=0;i<3;i++){reader=new BufferedReader(new InputStreamReader(System.in));send=reader.readLine();PrintWriter writer=new PrintWriter(socket.getOutputStream(),true);writer.println(send);BufferedReader BufIn=new BufferedReader(new InputStreamReader(socket.getInputStream()));String value=BufIn.readLine();if(value.contains("成功")){System.out.println(value);break;}}socket.close();}}class TServer{public static void main(String args[]) throws Exception{ServerSocket serverSocket=new ServerSocket(8090);for(int i=0;i<3;i++){Socket socket=serverSocket.accept();new Thread(new DemoThread(socket)).start();}}}class DemoThread implements Runnable{private Socket socket;public DemoThread(Socket socket){this.socket=socket;}@Overridepublic void run(){String ip=socket.getInetAddress().getHostAddress();try{System.out.println(ip+"...........connectioned");BufferedReader inR=new BufferedReader(new InputStreamReader(socket.getInputStream()));for(int i=0;i<3;i++){String content=inR.readLine();if(content==null){break;}System.out.println(content);BufferedReader reader =new BufferedReader(new FileReader("E:\\EditJava\\TCP\\data.txt"));  String data_content=null;boolean falg=false;while((data_content=reader.readLine())!=null){if(content.equals(data_content)){falg=true;break;}}if(falg){System.out.println("Server:登录成功,欢迎"+content+"光临");//向客户端发送消息PrintWriter pw=new PrintWriter(socket.getOutputStream(),true);pw.println("登录成功,欢迎"+content+"光临");break;}else{System.out.println("尝试登录。。。。");//向客户端发送消息PrintWriter pw=new PrintWriter(socket.getOutputStream(),true);pw.println("try");}}socket.close();}catch (Exception e) {System.out.println(ip+"校验失败");e.printStackTrace();}}}


原创粉丝点击