간단한 Java 메시징 프로그램을 작성 중입니다. 좀 더 복잡한 기능에 대한 작업을 시작하기 전에 기본 시스템을 작동시키고 싶습니다. 현재Java - 연결시 클라이언트 제공 오류
- 여러 클라이언트는 서버가 서버 클라이언트가있을 때 연결을 닫습니다 특히이 코드는주고 무엇을 것으로 보인다
종료
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class ClientThread implements Runnable{
private Socket server;
private DataInputStream in;
private DataOutputStream out;
public Text msgContent;
public void login(Stage stage, Scene main, String username, String password, String portString, String host) {
try {
int port = Integer.parseInt(portString);
this.server = new Socket(host, port);
this.in = new DataInputStream(server.getInputStream());
this.out = new DataOutputStream(server.getOutputStream());
stage.setScene(main);
Platform.runLater(new ClientThread());
}
catch (NumberFormatException e) {
System.out.println("Invalid Port");
return;
}
catch (IOException e) {
System.out.println("Error Connecting to Server");
return;
}
}
public void run() {
String msg = "";
try {
while (true) {
msg = in.readUTF(); //This line gives Errors
System.out.println("Read message from server");
msgContent.setText(msgContent.getText() + msg + "\n");
System.out.println("Added message from server to view");
}
}
catch(Exception ioe) {
ioe.printStackTrace();
System.out.println("Failed to read message from server and add to view.");
}
}
public void sendMsg(String msg) {
try {
out.writeUTF(msg);
} catch (Exception ioe) {
ioe.printStackTrace();
}
}
}
msgContent는 JavaFX 프론트 엔드 및 서버의 inputStream에있는 Text 객체입니다. 내 전체 코드는 here입니다. 나는 점점 오전 오류가에
ClientThread.run (ClientThread.java:42)에서 java.lang.NullPointerException이 com.sun.javafx.application.PlatformImpl $ (6) $ 1.run (알 수없는 소스)에서 입니다 com.sun.javafx.application.PlatformImpl $ 6 $ 1.run (알 수없는 소스)at java.security.AccessController.doPrivileged (네이티브 메소드) at com.sun.javafx.application.PlatformImpl $ 6.run (알 수없는 소스) at com.sun.glass.ui.InvokeLaterDispatcher $ Future.run (알 수없는 소스) com.sun.glass.ui.win.WinApplication._runLoop (네이티브 메소드) com.sun.glass.ui.win.WinApplication. 액세스 $ 300 (알 수없는 출처) com.sun.glass.ui.win.WinApplication $ 4 $ 1.run (알 수없는 소스) java.lang.Thread.run (알 수없는 소스) 서버에서 메시지를 읽지 못하고보기에 추가하지 못했습니다.
또한이 메서드를 실행하려면 Platform.runLater()를 사용하고 있습니다. 위의 오류를 수정하여 내 코드가 작동하는 방법을 알고 싶습니다. 미리 감사드립니다. NullPointer 예외
'in'은 null입니까? 정의되거나 선언 된 부분을 결코 볼 수 없습니다. – Wug
아니요. 'in'이 (가) null이 아닙니다. 전체 프로그램을 보려면 [GitHub Page] (http://www.github.com/xv435/JavaMSG)를 시도하십시오. – xv435
질문에 인라인으로 게시 된 [mvce] (http://stackoverflow.com/help/mcve)는 오프 사이트 리소스에 대한 링크보다 낫습니다. – jewelsea