以TCP/UDP协议为基础编写的登录系统
最近自学到网络编程部分,因此结合之前的数据流以及曾经写过的登录系统进行改进
package com.java;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
//模拟用户登录 客户端
public class LoginClientDemo {
public static void main(String[] args) throws IOException {
//创建客户端Socket对象
Socket s = new Socket("******",****);//个人计算机名 端口号
//获取用户名和密码
//使用输入缓冲流来替代Scanner
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入用户名");
String username = br.readLine();
System.out.println("请输入密码");
String password = br.readLine();
//获取输出对象
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
//写出数据
pw.println(username);
pw.println(password);
//创建输入流对象
BufferedReader serverbr = new BufferedReader(new InputStreamReader(s.getInputStream()));
//获取服务器返回的对象
String result = serverbr.readLine();
System.out.println(result);
//释放资源
s.close();
}
}
package com.java;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
//模拟用户登录 服务器
public class LoginServerDemo{
public static void main(String[] args) throws IOException {
//创建服务器端Socket对象
ServerSocket ss = new ServerSocket(****);//端口号
//监听
Socket s = ss.accept();
//获取输入流对象
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
//获取用户名和密码
String username = br.readLine();
String password = br.readLine();
//判断是否正确
boolean flag=false;
if("YXTPC".equals(username)&&"12345".equals(password)){
flag = true;
}
//获取输出流对象
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
//返回判断信息
if(flag){
pw.println("登录成功");
}else{
pw.println("登录失败");
}
//释放资源
s.close();
//ss.close();//服务器一般不关闭
}
}