欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java网络编程--FTP协议模拟用户客户端登录

程序员文章站 2022-06-17 19:07:40
主要思路:用户在客户端输入用户名 发送给服务器服务器比对用户名 如果正确返回客户端一个值表示输入正确客户端收到服务器返回的表示用户名输入正确的值 ,让用户继续输入密码服务器收到用户输入的密码进行比对 如果输入正确 给用户返回登陆成功package Login;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.InetAddress;imp...

主要思路:

  • 用户在客户端输入用户名 发送给服务器
  • 服务器比对用户名 如果正确返回客户端一个值表示输入正确
  • 客户端收到服务器返回的表示用户名输入正确的值 ,让用户继续输入密码
  • 服务器收到用户输入的密码进行比对 如果输入正确 给用户返回登陆成功
package Login;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 
 * @author fzl
 * @Dare 2020-11-22 14:44:05
 * @Description
 *
 */
public class fuwuqi {
	public static void main(String[] args) throws IOException {
		ServerSocket serverSocket = new ServerSocket(1111);
		Socket socket = serverSocket.accept();
		/*
		 * 获取客户端用户输入的用户名
		 * 
		 * 服务器端保存的用户名和密码为: username:fzl password:123
		 */
		String username = "fzl";
		String password = "123";
		InetAddress address = socket.getInetAddress();
		address.getHostName();
		InputStream inputStream = socket.getInputStream();
		byte[] byt = new byte[1024];
		int len = inputStream.read(byt);
		String username_receive = new String(byt, 0, len);
		System.out.println(address + "---->" + username_receive);

		serverSocket.close();
		socket.close();
		inputStream.close();

		if (username_receive.equals(username)) {
			/*
			 * 判断用户输入的用户名是否正确 如果正确发送给客户端一串文字 让客户输入密码 如果不正确 告诉用户错误
			 */
			Socket socket_return = new Socket(InetAddress.getByName(String 客户端IP), 2222);
			OutputStream outputStream = socket_return.getOutputStream();
			String string_return = "用户名输入正确 请输入密码";
			outputStream.write(string_return.getBytes());
			socket_return.close();
			outputStream.close();

		} else {
			Socket socket_return = new Socket(InetAddress.getByName(String 客户端IP), 2222);
			OutputStream outputStream = socket_return.getOutputStream();
			String string_return = "用户名输入错误";
			outputStream.write(string_return.getBytes());
			socket_return.close();
			outputStream.close();
		}

	}
}

package Login;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
/**
 * 
 * @author fzl
 * @Dare 2020-11-22 16:27:25
 * @Description
 *
 */
public class kehuduan2 {
public static void main(String[] args) throws IOException {
	/*
	 * 接收服务器返回的值,如果正确就继续输密码
	 */

	ServerSocket serverSocket = new ServerSocket(2222);
	Socket socket_receive = serverSocket.accept();
	InetAddress address = socket_receive.getInetAddress();
	address.getHostName();
	InputStream inputStream = socket_receive.getInputStream();
	byte[] byt = new byte[1024];
	int len = inputStream.read(byt);
	String recieve_return = new String(byt,0,len);
	System.out.println(address+"---->"+recieve_return);
	serverSocket.close();
	socket_receive.close();
	inputStream.close();
	
	
	if("用户名输入正确 请输入密码".equals(recieve_return)) {
		Socket socket_sendpsd = new Socket(InetAddress.getByName(String 服务器IP),3333);
		OutputStream outputStream_sendpsd = socket_sendpsd.getOutputStream();
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入您密码");
		String passwordString =sc.next() ;
		outputStream_sendpsd.write(passwordString.getBytes());
		socket_sendpsd.close();
	}
}
}

package Login;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
/**
 * 
 * @author fzl
 * @Dare 2020-11-22 16:27:02
 * @Description
 *
 */
public class fuwuqi2 {
public static void main(String[] args) throws IOException {
	/*
	 * 再次接收客户端发回的密码 如果密码正确 发回客户端 密码正确登陆成功 字样
	 * 如果密码错误发回客户端 密码错误登陆失败字样
	 */
	String username = "fzl";
	String password = "123";
	ServerSocket serverSocket_receivepsd = new ServerSocket(3333);
	Socket socket_receivepsd = serverSocket_receivepsd.accept();
	InetAddress address = socket_receivepsd.getInetAddress();
	address.getHostName();
	InputStream inputStream_receivepsd = socket_receivepsd.getInputStream();
	byte[] byt_receivepsd = new byte[1024];
	int len_receivepsd = inputStream_receivepsd.read(byt_receivepsd);
	String password_receive = new String(byt_receivepsd,0,len_receivepsd);
	System.out.println(address+"---->"+password_receive);
	serverSocket_receivepsd.close();
	socket_receivepsd.close();
	inputStream_receivepsd.close();
	/*
	 * 将结果发送回客户端
	 */
	if(password_receive.equals(password)) {
		Socket socket_return_denglujieguo =new Socket(InetAddress.getByName(String 客户端IP),4444);
		OutputStream outputStream_denglujieguo = socket_return_denglujieguo.getOutputStream();
		String string_return_denglujieguo = "密码正确 登陆成功";
		outputStream_denglujieguo.write(string_return_denglujieguo.getBytes());
		socket_return_denglujieguo.close();
		outputStream_denglujieguo.close();
	}else {
		Socket socket_return_denglujieguo =new Socket(InetAddress.getByName(String 客户端IP),4444);
		OutputStream outputStream_denglujieguo = socket_return_denglujieguo.getOutputStream();
		String string_return_denglujieguo = "密码错误 登陆失败";
		outputStream_denglujieguo.write(string_return_denglujieguo.getBytes());
		socket_return_denglujieguo.close();
		outputStream_denglujieguo.close();
	}
		
	
}
}

package Login;

import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
/**
 * 
 * @author fzl
 * @Dare 2020-11-22 16:27:33
 * @Description
 *
 */
public class kuhuduan3 {
public static void main(String[] args) throws IOException {
	/*
	 * 客户端接收服务器端发回的结果
	 */
	ServerSocket serverSocket_receive_jieguo = new ServerSocket(4444);
	Socket socket_receive_jieguo = serverSocket_receive_jieguo.accept();
	InetAddress address = socket_receive_jieguo.getInetAddress();
	address.getHostName();
	InputStream inputStream_jieguo = socket_receive_jieguo.getInputStream();
	byte[] byt_jieguo = new byte[1024];
	int len_jieguo = inputStream_jieguo.read(byt_jieguo);
	String recieve_return_jieguo = new String(byt_jieguo,0,len_jieguo);
	System.out.println(address+"---->"+recieve_return_jieguo);
	
	serverSocket_receive_jieguo.close();
	socket_receive_jieguo.close();
	inputStream_jieguo.close();
	
}
}

package Login;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.nio.channels.InterruptedByTimeoutException;
import java.util.Scanner;
/**
 * 
 * @author fzl
 * @Dare 2020-11-22 14:42:00
 * @Description
 *
 */
public class kehuduan {
public static void main(String[] args) throws UnknownHostException, IOException {
	Socket socket = new Socket(InetAddress.getByName(String 服务器IP),1111);
	OutputStream outputStream = socket.getOutputStream();
	InetAddress address = socket.getInetAddress();
	address.getHostName();
	/*
	 * 向服务器端发送用户输入的用户名
	 */
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入您的用户名");
	String usernameString = sc.next();
	outputStream.write(usernameString.getBytes());
	socket.close();

}
}

本文地址:https://blog.csdn.net/weixin_44976835/article/details/109956932

相关标签: socket java ftp