이것은 처음으로 TCP 클라이언트/서버 프로그램을 만드는 것입니다. 클라이언트 측에 사용자 이름과 암호를 묻는 간단한 Java 클라이언트 및 서버 프로그램을 작성해야합니다. 여기에서 서버는 mulch 차원 배열을 사용하여 생성하려고 시도한 사용자 데이터베이스를 검사하여 일치하는 항목이 있는지 확인하고 클라이언트에게 "Hello"(사용자 이름)를 말하는 메시지를 반환 한 다음 사용자에게 다른 모든 사용자에게 알립니다 서버에 등록 된 사용자. 자바 TCP 클라이언트/서버 및 루프 문제
는 특정 문제 그러나, 나는 두 가지를 실행할 때마다 나는 부분에 도착하면, 서버는 루프를 통해 이동하도록되어 있다고하고, 표시되는 모든 현재 서버에 등록 "다른 사용자가 내 include : MATTCARLJOHN 서버에 등록 된 다른 사용자는 현재 다음을 포함합니다. MATTCARLJOHN 서버에 등록 된 다른 사용자는 현재 다음을 포함합니다. MATTCARLJOHN ".내 서버가 내 루프와 if 문을 완전히 무시하고 인증을 확인하고 클라이언트 측의 사용자 이름과 암호를 입력 할 때 루프에 직접 건너 뛴다 고 가정합니다. 여기
이 두 프로그램은 다음과 같습니다 클라이언트
import java.io.*;
import java.net.*;
class TCPClient2
{
public static void main(String argv[]) throws Exception
{
String userName;
String passWord;
String loginInfo;
String loginInfo2;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
System.out.println("Username: ");
userName = inFromUser.readLine();
outToServer.writeBytes(userName + '\n');
System.out.println("Password: ");
passWord = inFromUser.readLine();
outToServer.writeBytes(passWord + '\n');
loginInfo = inFromServer.readLine();
System.out.println(loginInfo);
clientSocket.close();
}
}
및
import java.io.*;
import java.net.*;
class TCPServer2
{
public static void main(String argv[]) throws Exception
{
ServerSocket welcomeSocket = new ServerSocket(6789);
String[][] Login = {{"MATT","UNCP"},{"JOHN","UNCP"},{"CARL","UNCP"}};
String username;
String username1;
String password;
String password1;
while(true)
{
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
username = inFromClient.readLine();
System.out.println("Username received: " + username);
password = inFromClient.readLine();
System.out.println("Password received: " + password);
username1=username.toUpperCase() + '\n';
password1=password.toUpperCase() + '\n';
for(int i = 0; i<Login.length; i++){
if(Login[i][0].equals(username1) && Login[i][1].equals(password1)){
outToClient.writeBytes("Hello " + username1);
outToClient.writeBytes("Other users registered on the server currently include: ");
for(int k = 0; k<Login.length; k++){
outToClient.writeBytes(Login[k][0]);}
else
outToClient.writeBytes("Invalid Username and/or password.");
}
}
}
}
}
이 어떤 도움을 매우 높이 평가 될 것이다 서버, 이건 내 처음 사이트에 게시입니다 나는 네트워킹과 Java에 매우 익숙합니다. 제 질문이 혼란 스러우면 저를 용서해주십시오.
감사합니다.
야아, 즉, 그것은 큰뿐만 아니라 나를 위해 작동 모든입니다에 대한 루프 그건 내 비록 그 아래에 주요 문제가 있지만 성공적인 사용자 로그인을 인식하도록하는 것입니다. – user1373440