黑马程序员技术交流社区
标题:
网络编程登录验证用户名的一些问题,求解答~!
[打印本页]
作者:
李亚西
时间:
2014-7-14 07:58
标题:
网络编程登录验证用户名的一些问题,求解答~!
//需求:客户端通过键盘录入用户名,服务端对用户名进行校验
/*
如果该用户名存在,在服务端显示xxx,已经登录;并在客户端显示xxx,欢迎登录
如果该用户不存在,在服务端显示xxx,尝试登录,并在客户端显示xxx,该用户不存在
*/
import java.io.*;
import java.net.*;
class LoginClient1
{
public static void main(String[] args)throws Exception
{
Socket s=new Socket("192.168.2.101",10004);
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
for (int x=0;x<3 ;x++)
{
String line=bufr.readLine();
if (line==null)
break;
out.println(line);
String info=bufIn.readLine();
System.out.println("info:"+info);
if (info.contains("欢迎"))
break;
}
bufr.close();
s.close();
}
}
class LoginThread implements Runnable
{
private Socket s;
LoginThread(Socket s)
{
this.s=s;
}
public void run()
{
String ip=s.getInetAddress().getHostAddress();
System.out.println(ip+"....connected");
try
{
for (int x=0;x<3 ;x++ )
{
BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
String name=bufIn.readLine();
BufferedReader bufr=new BufferedReader(new FileReader("F:\\login.txt"));
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
String line=null;
Boolean flag=false;
while ((line=bufr.readLine())!=null)
{
if (line.equals(name))
{
flag=true;
break;
}
}
if (flag)
{
System.out.println(name+",已经登录");
out.println(name+",欢迎光临");
break;
}
else
{
System.out.println(name+",尝试登录");
out.println(name+",该用户不存在");
}
s.close();
}
}
catch (Exception e)
{
throw new RuntimeException(ip+"校验失败");
}
}
}
class LoginServer1
{
public static void main(String[] args)throws Exception
{
ServerSocket ss=new ServerSocket(10004);
while (true)
{
Socket s=ss.accept();
new Thread(new LoginThread(s)).start();
}
}
}
运行时出现下图中的问题咋解决呀?
图像 2.jpg
(45.4 KB, 下载次数: 6)
下载附件
2014-7-14 07:57 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2