로그인 프로그램을 만들고있는데 쉽지 않네요 ㅠㅠ흑....조언을 얻고싶습니다
새밝
import java.io.*;
import java.net.*;
public class loginserver implements runnable {
public static final int serverport = 10001;
public static final string serverip = 192.168.0.110;
private socket client=null;
private bufferedreader br =null;
private printwriter pw = null;
public void run() {
string msg;
string str;
string name;
string password;
string nameline;
string passline;
try {
system.out.println(s: connecting...);
serversocket serversocket = new serversocket(serverport);
while (true) {
socket client = serversocket.accept();
system.out.println(s: receiving...);
try {
while(true){
bufferedreader login_br=new bufferedreader(new inputstreamreader(client.getinputstream()));
printwriterlogin_pw=new printwriter(client.getoutputstream(),true);
name=login_br.readline();
system.out.println(name);
password=login_br.readline();
system.out.println(password);
try{
bufferedreader read=new bufferedreader(new filereader(name.txt));
nameline=read.readline();
passline=null;
int count=0;
while((nameline)!=null){
count++;
system.out.println(인증시도+count+회);
if(name==nameline){
bufferedreader pread=new bufferedreader(new filereader(password.txt));
for(int i=0;icount;i++){
passline=pread.readline();
}
if(passline==password){
system.out.println(인증);
system.out.println(nameline);
system.out.println(passline);
login_pw.println(로그인 완료);
login_pw.flush();
}
else{
system.out.println(비밀번호 틀림);
login_pw.println(비밀번호 틀림 다시적어주세요);
login_pw.flush();
}
pread.close();
nameline=null;
}
& else{
nameline=read.readline();
if(nameline==null){
system.out.println(입력하신 이름 확인바람);
login_pw.println(이름 다시 입력바람);
login_pw.flush();
}
}
}
read.close();
read=null;
}catch(exception e){
e.printstacktrace();
}client.close();
login_pw.close();
login_br.close();
client=null;
login_pw=null;
login_br=null;
}
} catch (exception e) {
system.out.println(s: error);
e.printstacktrace();
}
}
} catch (exception e) {
system.out.println(s: error);
//e.printstacktrace();
}
}
public static void main(string[] args) {
// todo auto-generated method stub
thread desktopserverthread = new thread(new loginserver());
desktopserverthread.start();
}
}
s: connecting...
s: receiving...
김보람 (이름)
123 (비번)
인증시도1회
입력하신 이름 확인바람
s: error
java.lang.nullpointerexception
at loginserver.run(loginserver.java:45)
at java.lang.thread.run(unknown source)
45번줄은 bufferedreader login_br=new bufferedreader(new inputstreamreader(client.getinputstream()));
이건데 왜 에러가 뜨는걸까요?
로그인 프로그램을 만들고있느데요
이름과 비밀번호를 입력하고 이름이 일치하면 다음에 비밀번호 가 일치하는지 보는거에요
근데 비교할 이름과 비밀번호는 텍스트 ㅍㅏ일로해서 bin밖에 폴더에 넣어놨는데
프로그램이 텍스트파일을 불러서 비교를 못하나봐요 자꾸 오류가 나네요
이름과 패스워드는 이름과 패스워드는 메모장에 따로따로해서 저장해놓고 어느 폴더에 넣어놓는건지 정확히 알고싶어요 그리고 이름과 비밀번호를 입력할때 이름치고 나서 비밀번호 쳐야 하는거겠죠?
-
돌심장 2023-12-20
오 감사합니다 ! 일단 str1.equals(str2) 하니 좀 되네요 ㅠㅠ 감ㅎ사합니다~!!
-
보미 2023-12-20
음.. 먼저 client 라는 게 밑에서 보니 null 로 set 하셔서 null 에러가 나지 싶습니다. while 이 한번 돌고 나서요. 지금 아이폰으로 보는지라 소스를 전체적으로 볼 수 없네요. 그리고 자바에서는 문자열을 비교할 때 str1 == str2 이렇게 하지 않고 str1.equals(str2) 이렇게 합니다. 그리고 구조가 복잡할 땐 따로 필요한 부분을 메소드로 빼 보세요. 어디서 에러가 나는지 명확하지 않고서야.. 일단은 문자열을 파라