나는 잘못된 일을 해결하고 일을 변경하는 등의 노력을 해왔으며 아무 소용이 없었습니다. 내 삼성 장치와 디버그 클라이언트 측에 시도 할 때kryonet을 사용하여 서버/클라이언트가 작동하지 않는 Android 게임
는 안드로이드 스튜디오에서 다음과 같은 오류가 발생합니다 :
com.esotericsoftware.kryonet.KryoNetException: Incorrect number of bytes (1 remaining) used to deserialize object: null
at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:146)
at com.esotericsoftware.kryonet.Client.update(Client.java:255)
at com.esotericsoftware.kryonet.Client.run(Client.java:338)
at java.lang.Thread.run(Thread.java:856)
나는 그것이 같은 자바 버전을 사용 생각하고, 내가 정확히 같은 클래스를 등록합니다. 클라이언트 측 :
Client client = new Client();
Kryo kryo = client.getKryo();
kryo.register(SomeRequest.class);
kryo.register(SomeResponse.class);
client.start();
try{
client.connect(5000, "10.0.0.4", 31055, 32055);
}catch (IOException e) {
throw new GdxRuntimeException(e);
}
SomeRequest request = new SomeRequest();
request.text = "Here is the request";
client.sendTCP(request);
client.addListener(new Listener() {
public void received (Connection connection, Object object) {
if (object instanceof SomeResponse) {
SomeResponse response = (SomeResponse)object;
System.out.println(response.text);
}
}
});
서버 측 :
Server server = new Server();
Kryo kryo = server.getKryo();
kryo.register(SomeRequest.class);
kryo.register(SomeResponse.class);
server.start();
System.out.println("server started");
server.bind(31055, 32055);
server.addListener(new Listener(){
public void connected(Connection connection){
System.out.println("connect");
}
public void received (Connection connection, Object object) {
if (object instanceof SomeRequest) {
SomeRequest request = (SomeRequest)object;
System.out.println(request.text);
SomeResponse response = new SomeResponse();
response.text = "Thanks";
connection.sendTCP(response);
}
}
});
}
클래스 :
class SomeRequest{
public String text;
}
class SomeResponse {
public String text;
}
당신은 아주 기본적인 코드를 볼 수 있지만 연결로 악몽이다. 도와주세요 !! 나는 안드로이드 스튜디오에서 클라이언트 측을 만들고, 서버는 일식으로 만듭니다. 이것이 문제의 원인이 될 수 있습니까? 그게 내가 생각해 낸 유일한 논리적 인 이유 야. 어떻게 해결할 수 있습니까?
동일한 문제가 발생합니까? 어떻게 서버를 만들었습니까? 방금 Java 애플리케이션으로 Eclipse에 기본 서버를 작성하고 Android Studio에 코딩 된 LibGDX 데스크탑과 연결하려고했습니다. – Madmenyo