java客户端登陆_Java编程之实现客户端的登陆程序,需要得到服务器端的认证

这个程序简单来说就是客户端键盘录入用户名,然后传到服务器端,服务器端对这个用户名进行认证,认证的过程就是在自己的文本文档中查找,如果没有,则告诉客户端,我这里没有,你登陆失败了,如果有的话,则告诉客户端。你可以登陆就表示登陆成功。

客户端和服务器端是一对一的关系,是平级关系,所以说客户端和服务器端同时运行的关系,不是你运行一次我运行一次的关系,这是必须要注意的。

代码

客户端

package yanzheng;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.Socket;import java.net.UnknownHostException;public class Client {public static void main(String args[]) throws UnknownHostException, IOException{BufferedReader br=new BufferedReader(new InputStreamReader(System.in));Socket s=new Socket("192.168.0.1", 10006);BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));BufferedReader br1=new BufferedReader(new InputStreamReader(s.getInputStream()));String len=null;for(int i=0;i<3;i++) {String line=br.readLine();if(line==null) {break;}bw.write(line);String info=br1.readLine();if("登陆成功".equals(info)){break;//如果时我要登陆就表示登陆,那么break就没有意义了}br.close();bw.close();br1.close();s.close();}}}

服务器端代码

package yanzheng;

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintStream;

import java.net.ServerSocket;

import java.net.Socket;

public class Server {

public static void main(String args[]) throws IOException {

ServerSocket ss=new ServerSocket(100006);

while(true) {

Socket s=ss.accept();

ServerThread st=new ServerThread(s);

Thread t=new Thread(st);

t.start();

}

}

}

class ServerThread implements Runnable{

Socket s;

ServerThread(Socket s){

this.s=s;

}

public void run() {

for(int i=0;i<3;i++) {

try {

BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));

String name=br.readLine();//等待输入三次

if(name==null) {

break;

}

boolean flag=false;

BufferedReader br1=new BufferedReader(new FileReader("a.txt"));//a.txt中存放登陆密码

PrintStream ps=new PrintStream(s.getOutputStream());

String line=null;

while((line=br1.readLine())!=null) {

if(name.equals(line)) {//密码中有一个成立就算登陆成功

flag=true;

break;

}

if(flag) {

System.out.println("登陆成功");

ps.println("登陆成功");

}

else {

ps.println("登陆失败");

}

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}如果你对编程感兴趣的话,欢迎关注收藏转发。

0dc57bb26fa8fe48fc2a4fd6e271c811.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值