利用Tcp通信模式实现登陆验证(单线程)
来源:互联网 发布:ncut算法优劣 编辑:程序博客网 时间:2024/06/10 15:30
Client客户端
接收键盘输入的信息传给服务器端,由服务器端验证后,客户端接收服务器端传回的信息。
public class LoginClientTest { public static void main(String[] args) throws UnknownHostException, IOException { // TODO Auto-generated method stub Socket socket = new Socket(InetAddress.getByName("10.0.185.54"),32145); System.out.println("客户端启动..."); InputStream in = socket.getInputStream(); OutputStream out = socket.getOutputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = null; byte[] arr = new byte[1024]; int len = 0; while((line = br.readLine())!=null){ if("over".equals(line)) break;// System.out.println("lala"); out.write(line.getBytes());// out.write("\r\n".getBytes()); len = in.read(arr); System.out.println(new String(arr,0,len)); } br.close(); out.close(); in.close(); socket.close(); }}
Server服务器端
接收客户端传来的数据信息,跟集合(模拟数据库)中的数据匹配,若有,传回登陆成功的信息。
public class LoginServerTest { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub ServerSocket server = new ServerSocket(32145); Socket socket = server.accept(); OutputStream out = socket.getOutputStream(); InputStream in = socket.getInputStream();// BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line = null; byte [] arr = new byte[1024]; int len =0; while((len = in.read(arr))!=-1){ //new String(arr,0,len).equals("aaa") String str = new String(arr,0,len); boolean bool = LoginTool1.Check(str); if(bool){ out.write((str+",欢迎光临").getBytes()); System.out.println(str+",已登录"); } else{ //修改 out.write((str+",该用户不存在").getBytes()); System.out.println(str+"尝试登陆"); } } in.close(); out.close(); socket.close(); }}class LoginTool1{ //修改 原来没有new对象,所以是空 public static Set<String> set = new HashSet<String>(); static{ set.add("aaa"); set.add("bbb"); set.add("ccc"); } //set.add("aa"); public static boolean Check(String s){ if(set.contains(s)){ return true; } else return false; }}
单线程的模式,只能与一个客户端相连。
1 0
- 利用Tcp通信模式实现登陆验证(单线程)
- 利用web.config来实现登陆验证
- 利用web.config来实现登陆验证
- Android利用Socket(TCP)通信实现即时聊天
- Java多线程通信-利用传统的线程通信wait(),notify()方法实现“生产者消费者模式”
- java实现tcp服务器(单线程、多线程)、客户端
- java实现Socket通信(一)---单线程服务
- 利用多线程技术实现线程之间的通信(转)
- 利用双重检查加锁机制实现线程安全的单例模式
- 利用存储映射实现线程间通信
- 使用模板实现单例模式(线程安全)
- 利用web.config来实现登陆验证[测]
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- 利用Node.js实现模拟Session验证的登陆
- 利用c++实现单件模式
- UVA2070-Interesting Numbers
- 第一篇博客
- C++全局变量与静态变量构造析构顺序问题
- Python学习笔记 --- ImportError: No module named sqlalchemy
- 关于使用echarts.js插件写的一个折线图demo
- 利用Tcp通信模式实现登陆验证(单线程)
- U-Boot常用命令和常用环境变量
- 希尔排序详解
- startActivityForResult用法
- android ListView异步加载图片,完美实现图文混排
- 串口异步收发的实现
- easyui form表单.serialize()序列化后中文乱码问题原因及解决
- codeforces AIM Tech Round 3 (Div. 2) (A~D)
- 修改tomcat的conf/server.xml解决网页乱码