//LoginClient.java
package mySocket;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
*客户端通过键盘录入用户名
*服务端对这个用户名进行校验。
*
*如果该用户存在,在服务端显示xxx,已登录。
*并在客户端显示xxx,欢迎光临。
*
*如果该用户存在,在服务端显示xxx,尝试登陆。
*并在客户端显示xxx,该用户不存在。
*
*最多登陆3次。
*/
public class LoginClient {
public static void main(String[] args) throws Exception {
Socket s = new Socket("192.168.1.103",10008);
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);
if(info.contains("欢迎"))
break;
}
bufr.close();
s.close();
}
}
package mySocket;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
class LoginThread implements Runnable {
private Socket s;
public LoginThread(Socket s) {
this.s = s;
}
public void run() {
//获取连接的ip
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"已被连接");
try {
for(int x=0;x<3;x++) {
BufferedReader bufIn =
new BufferedReader(new InputStreamReader(s.getInputStream()));
//读取客户端发来的数据
String name = bufIn.readLine();
if(name==null)
break;
//读取user.txt里的数据
BufferedReader bufr =
new BufferedReader(new FileReader("user.txt"));
String line = null;
boolean flag = false;
while((line=bufr.readLine())!=null) {
if(line.equals(name)) {
flag = true;
break;
}
}
PrintStream out = new PrintStream(s.getOutputStream(),true);
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+"校验失败");
}
}
}
public class LoginServer {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(10008);
while(true) {
Socket s = ss.accept();
new Thread(new LoginThread(s)).start();
}
}
}
原文地址:http://blog.csdn.net/huolang_vip/article/details/40346151