socket实现用户端 登录 服务器端 用户名验证
来源:互联网 发布:access 导入sqlserver 编辑:程序博客网 时间:2024/05/17 22:01
//客户端:
package 用户端服务器端登录验证;
import java.net.*;
import java.io.*;
class LoginClient
{
public static void main(String[] args)throws Exception
{
Socket s = new Socket("10.0.185.126",8888);
//读取键盘录入,获取用户名。
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
//对socket输出流进行打印。将录入的用户名发送给服务端。
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
//对socket输入流中的数据进行获取,其实就是在获取服务端的回馈信息。
BufferedReader in =
new BufferedReader(new InputStreamReader(s.getInputStream()));
//客户端值允许录入三次。
for(int x=0; x<3; x++)
{
//从键盘读取一行。
String username = bufr.readLine();
if(username==null)
{
//s.shutdownOutput();
break;
}
//将该行数据打印到socket输出流。
out.println(username);
//获取服务端反馈信息。
String info = in.readLine();
System.out.println(info);
if(info.contains("欢迎"))
break;
}
bufr.close();
s.close();
}
}
//服务器端(主函数):
package 用户端服务器端登录验证;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
class LoginServer
{
public static void main(String[] args) throws Exception
{
ServerSocket ss = new ServerSocket(8888);
while(true)
{
Socket s = ss.accept();
System.out.println(s.getInetAddress().getHostAddress()+".....connected");
new Thread(new UserThread(s)).start();
}
}
}
class UserThread implements Runnable
{
private Socket s;
UserThread(Socket s)
{
this.s = s;
}
public void run()
{
try
{
for(int x=0; x<3; x++)
{
//判断用户名是否为空
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String name = bufIn.readLine();
if(name==null)
{
System.out.println("程序结束 ");
break;
}
//匹配用户名并实现登陆
BufferedReader bufr = new BufferedReader(new FileReader("E:\\Eclipse\\Users\\workspace\\Self\\src\\用户端服务器端登录验证\\user.txt"));
String line = null;
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
boolean b = false;
while((line=bufr.readLine())!=null)
{
if(line.equals(name))
{
b = true;
break;
};
}
if(b)
{
System.out.println(name+"已登录");
out.println(name+",欢迎光临");
}
else
{
System.out.println(name+"尝试登录");
out.println(name+",用户不存在");
}
}
}
catch (Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
if( s!=null)
s.close();
}
catch (Exception e)
{
System.out.println("close:"+e.toString());
}
}
}
}
user.txt
例:
lisi
admin
李四
- socket实现用户端 登录 服务器端 用户名验证
- 使用dwr框架实现登录用户名验证
- Ajax实现登录时的用户名验证(Servlet 响应)
- twisted介绍与用户端服务器端
- Qt实现客户端/服务器端登录验证|数据传输使用md5加密
- Java实现在登录时验证验证码并在登录后记住用户名
- SmartFoxServer服务器端用户登录验证
- AJAX实现用户名验证
- Ajax实现用户名验证
- AJAX实现用户名验证
- AJAX实现用户名验证
- 服务器端实现验证码
- 登录用户名和密码的验证
- PHP验证登录用户名和密码
- PHP验证登录用户名和密码
- PHP验证登录用户名和密码
- PHP验证登录用户名和密码
- PHP验证mysql登录用户名和密码
- Android intent-filiter学习笔记
- iOS绘图
- Linux下编译、链接和装载
- 主对角线打印二维数组---美团点评2016研发工程师编程题(二)
- HDU 1180诡异的楼梯 解题报告
- socket实现用户端 登录 服务器端 用户名验证
- 关于LeetCode中Longest Common Prefix一题的理解
- android 代码获取版本信息
- 邮件服务器小结
- 获取结构体字节数简单的方法
- ViewHolder的二次封装
- 安装和使用CocoaPods
- Android的handler详解
- UVA 1153 - Keep the Customer Satisfied(贪心)