网络编程中(socket)用户登录验证以及注册(单用户)
2017-08-01 19:20
639 查看
网络编程中(socket)用户登录验证以及注册(单用户)
代码演示如下:
代码演示如下:
package com.tiger.login; import java.io.*; import java.net.*; import java.util.Properties; /** * 网络编程中(socket)用户登录验证以及注册 * @author tiger * @Date 2017年7月31日 */ public class ServerLogin { @SuppressWarnings("resource") public static void main(String[] args) throws IOException { System.out.println("服务器启动。。。。"); String path = "E:\\tiger\\user.txt"; ServerSocket server = null; DataInputStream is = null; DataOutputStream os = null; server = new ServerSocket(6666); Socket socket = server.accept(); is = new DataInputStream(socket.getInputStream()); os = new DataOutputStream(socket.getOutputStream()); login(is,os,path,socket);//登录 os.close(); is.close(); } /** * 登录 * @param is * @param os * @param path 类似数据库,服务端才直接面对数据库 */ public static void login(DataInputStream is,DataOutputStream os,String path,Socket socket){ try { //读取客户端输入的信息 String[] str = is.readUTF().split("="); String name = str[0]; String pwd = str[1]; //读取文本数据信息 FileInputStream fis = new FileInputStream(path); Properties pros = new Properties(); pros.load( fis ); String user = pros.getProperty( "user" ); String pass = pros.getProperty( "pass" ); //验证客户端输入的信息和文本数据信息是否一致。 if (name.equals(user) && pwd.equals(pass)) { os.writeUTF("登录成功!"); }else { //向客户端发送消息,询问是否需要注册。 os.writeUTF("账户或密码错误或不存在,登录失败!如果需要注册,请输入 \"1\" "); register(is,os, path);//注册 } } catch (IOException e) { e.printStackTrace(); } } /** * 注册,如果登录不成功,则选择调用这个方法 */ private static void register(DataInputStream is,DataOutputStream os,String path){ BufferedWriter writer; try { writer = new BufferedWriter(new FileWriter(path)); //读取客户端输入的信息,输出到 user.txt 数据库中 String[] str = is.readUTF().split("="); String name = str[0]; String pwd = str[1]; writer.write("user="+name); writer.newLine(); writer.write("pass="+pwd); writer.close();//关闭缓冲流,才会写出数据 //像客户端反馈注册结果消息 os.writeUTF("恭喜注册成功!如果需要重新登录,请输入 \"2\""); } catch (IOException e) { e.printStackTrace(); } } }package com.tiger.login; import java.io.*; import java.net.Socket; import java.util.Scanner; /** * 网络编程中(socket)用户登录验证以及注册 * @author tiger * @Date 2017年7月31日 */ public class ClientLogin { public final static int PORT = 6666;//服务器端口号 public final static String IP_ADDR = "127.0.0.1";//服务器地址 @SuppressWarnings("resource") public static void main(String[] args) throws IOException { DataInputStream is = null; DataOutputStream os = null; Socket socket = new Socket(IP_ADDR,PORT); //读取服务器端输入数据 is = new DataInputStream(socket.getInputStream()); //向服务器端发送数据 os = new DataOutputStream(socket.getOutputStream()); login(is, os,socket); os.close(); is.close(); } /** * 注册 * @param is * @param os */ private static void register(DataInputStream is,DataOutputStream os){ Scanner sc = new Scanner(System.in); try { //将读取到的信息发送到服务器 System.out.println("注册格式--【登录名=登录密码】"); os.writeUTF(sc.nextLine()); //接受来自服务器反馈的注册结果消息 System.out.println(is.readUTF()); } catch (IOException e) { e.printStackTrace(); } } /** * 登录 * @param is * @param os */ public static void login(DataInputStream is,DataOutputStream os,Socket socket){ Scanner sc = new Scanner(System.in); try { //发送到服务器做验证 System.out.println("登录格式【登录名=登录密码】"); os.writeUTF(sc.nextLine()); //接收打印来自服务器端登录结果的反馈消息 String ret = is.readUTF(); System.out.println(ret); if (ret.equals("登录成功!")) { socket.close(); }else if (sc.nextLine().equals("1")) { register(is, os); }else { System.out.println("欢迎下次光临!"); socket.close(); } } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- Java网络编程:登录界面 登录验证 以及登录成功的好友界面
- web编程之注册以及登录验证模块(PHP+mysql)
- 网络编程--实现用户登录验证功能
- 基于socket,实现用户注册,用户登录,以及文件上传的例子
- Python案例-网络编程-socket-Ftp&多用户登录
- Linux网络编程之socket:socket与字节序以及地址转换函数
- Java网络编程ServerSocket的实现服务器与用户之间的通信的基本步骤
- 18天Java学习---Java的Socket网络编程以及多线程
- 【MVC】会员注册/登录,普通验证,会员名是否注册Ajax验证以及会员邮件验证实现原理
- 用户登录与注册表单验证代码
- Servlet实现用户的登录注册+sqlite数据库验证
- 注册用户名称的PHP验证以及含中英文混合的字符串长度的判断
- Thinkphp 登录以及注册的自动验证
- 【公告】关于开启用户注册及登录手机短信验证的通知
- 【java编程】TCP_Socket网络编程之用户登陆
- IPv6下网络编程socket, TCP和UDP例子,以及兼容IPV4和IPV6的类
- 用JavaScript实现用户登录验证、注册信息格式检验(附代码)
- 使用MVC模型的用户登录及注册(验证用户是否存在)
- 从零开始实现asp.net MVC4框架网站的用户登录以及权限验证模块 详细教程
- 基于TCP协议的Socket通信 实现用户登录 以及服务端的相应