저는 자바로 내 첫 번째 서버/클라이언트 프로젝트를 만들고 있습니다. 그것은 여전히 매우 기본이고 나는 서버와 클라이언트 프로그램간에 데이터를 교환 할 수있었습니다. 이제 클라이언트가 Connection을 종료하면 다시 연결하는 데 문제가 있습니다.Java 서버의 주요 기능을 다시 시작하십시오.
저는 Visual Basic에서 어디서 타이머와 부울이 있었는지 확인하고 Connection이 설정되었는지 확인하고 결국 소켓을 재설정합니다.
자바에서 Start 메소드와 Restart 메소드를 설정하고 Loop 상태를 확인하는 것과 비슷한 것을 시도했다.
이클립스는 비 정적 필드에 대한 정적 참조를 만들 수 없다는 메시지를 계속 제공합니다. 이제 나는 완전히 잃어 버렸어.
다음은 잘 작동하지만 다시 시작할 수없는 서버 코드입니다.
package ComplexChatServer;
public class MainRoutine {
public Boolean boIsRunning;
public ConnectionHandlerS chsEins;
public Boolean boConnected = false;
public String strText;
public void StartRunning() {
boIsRunning = true;
chsEins = new ConnectionHandlerS();
chsEins.SocketListener();
}
public void ContinueRunning() {
boConnected = chsEins.getClientStatus();
if (boConnected == true) {
//System.out.println("Connected");
strText = null;
strText = chsEins.ReadInput();
if (strText != null && strText.isEmpty() == false) {
System.out.println("Loop");
System.out.println(strText);
strText = "";
boIsRunning = true;
}
else if (strText.equalsIgnoreCase("+++END+++")) {
boIsRunning = false;
System.exit(0);
}
}
else {
//System.out.println("Not connected");
}
}
public static void main (String [] args) {
int intRun;
while (true) {
if (boIsRunning = true) {
intRun = 1;
}
else {
intRun = 0;
}
switch (intRun) {
case 0:
StartRunning();
break;
case 1:
ContinueRunning();
break;
}
}
}
}
항상 true로 평가되기 때문에'if (boIsRunning = true) '실수를 보았습니다 ('=='또는'if (boIsRunning) ...') – moffeltje
왜 당신은 System .exit (0)? 프로세스를 완전히 종료하고 응용 프로그램을 다시 시작해야합니다. –
또한 자바에서는 소문자로 메소드를 시작하는 것이 일반적입니다. – moffeltje