0
我試圖從Android客戶端(從我的手機)連接到服務器(我的PC)。服務器和客戶端都使用KryoNet。當我嘗試從與服務器位於同一臺PC上的客戶端進行連接時,連接成功。當我嘗試從連接到無線的Android手機連接到與運行服務器的PC相同的路由器時,連接也是成功的。當我使用移動數據嘗試從手機進行連接時,連接失敗(它給出超時錯誤)。我做了端口轉發,並從Windows防火牆設置中打開端口。任何想法有什麼不對?Android客戶端未連接到服務器KryoNet
客戶端代碼:
final Client client = new Client();
client.getKryo().register(StringRequest.class);
final StringRequest request = new StringRequest();
new Thread(client).start();
System.out.println("Client started.");
try {
client.connect(5000, ipAddress, 54555);
client.addListener(new Listener() {
public void received(Connection connection, Object object) {
if (object instanceof StringRequest) {
StringRequest response = (StringRequest) object;
Gdx.app.log("Client",response.data);
}
}
});
} catch (IOException e) {
Gdx.app.log("Exception", e.getMessage());
e.printStackTrace();
}
request.data = "Hello";
client.sendTCP(request);
Server代碼:
Server server = new Server();
Kryo kryo = server.getKryo();
kryo.register(StringRequest.class);
server.start();
try {
server.bind(54555);
} catch (IOException e) {
e.printStackTrace();
}
server.addListener(new Listener() {
public void received (Connection connection, Object object) {
if (object instanceof StringRequest) {
StringRequest request = (StringRequest)object;
System.out.println("Server"+request.data);
StringRequest response = new StringRequest();
response.data = "response";
connection.sendTCP(response);
}
}
});
再次感謝。我使用的是本地IP,這是問題所在。 – Andy