私はjava/libgdxを使用していますが、ソケットに問題が発生しました。それは遅く動作します。私の小さなゲームは、左右に動くキャラクターを提示します。 tcp/localhostで送信した後、遅くなります。私はクライアントとサーバーのクラスから2つのコードを追加します。私を助けてください。私はくっついた。前もって感謝します。必要な場合は、コード全体を入れます。あなたのコードが遅いソケットが遅すぎる:: java/libgdx
// CLIENT
public class ClientThread extends Thread{
public void run(){
hints = new SocketHints();
hints.connectTimeout = 11000;
while(trwanie)
{
socket = Gdx.net.newClientSocket(Protocol.TCP, "localhost", 8784, hints);
if(!socket.isConnected())
System.out.println("NIE JEST");
//System.out.println("socket null?");
if(socket!=null)
{
try {
socket.getOutputStream().write(new String("CZESC server").getBytes()); // wiadomosc wysylana
//byte[] read = new byte[1024];
socket.getInputStream().read(read); //odebrana od servera
readString = new String(read).trim();
XY = readString;
StringToFloat();
} catch (IOException e) {
e.printStackTrace();socket.dispose();
}
}
//socket.dispose();
if(Gdx.input.isKeyPressed(Keys.ESCAPE))
{
WylaczPentle();
System.out.println("Wychodzimy z pentli");
Gdx.app.exit();
}
}
socket.dispose();
}
}
//サーバー
public class ServerThread extends Thread{
public void run()
{
hints = new ServerSocketHints();
hints.acceptTimeout = 12000;
socketHints = new SocketHints();
while(trwanie)
{
server = Gdx.net.newServerSocket(Protocol.TCP, "localhost", 8784, hints);
socket = server.accept(socketHints);
if(socket != null)
{
//byte[] read = new byte[1024];
try {
socket.getInputStream().read(read);
socket.getOutputStream().write((WspolzednaX+"/"+WspolzednaY).getBytes()); //---
} catch (IOException e) {
e.printStackTrace();
server.dispose();
}
}
server.dispose();
if(Gdx.input.isKeyPressed(Keys.ESCAPE))
{
WylaczPentle();
System.out.println("Wychodzimy z pentli");
Gdx.app.exit();
}
}
server.dispose();
}
}
ストリングを書きたい場合は、DataOutputStreamと[writeUTF()](https://docs.oracle.com/javase/7/docs/api/java/io/DataOutputStream.html#writeUTF java.lang.String)))。そして、書かれたデータをフラッシュすることを忘れないでください。 – Robert