主要思路:
- 用戶在客戶端輸入用戶名 發送給服務器
- 服務器比對用戶名 如果正確回傳客戶端一個值表示輸入正確
- 客戶端收到服務器回傳的表示用戶名輸入正確的值 ,讓用戶繼續輸入密碼
- 服務器收到用戶輸入的密碼進行比對 如果輸入正確 給用戶回傳登陸成功
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://www.uj5u.com/qita/226977.html
標籤:其他
上一篇:OpenCV之彩色視頻轉黑白視頻
下一篇:關于心跳包的實作手法
