首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >套接字工作太慢::java/libgdx

套接字工作太慢::java/libgdx
EN

Stack Overflow用户
提问于 2016-05-15 14:25:11
回答 2查看 516关注 0票数 0

我正在使用java/libgdx,我遇到了套接字的问题。效果很慢。我的小游戏呈现人物形象,它左右移动。通过tcp/localhost发送后,它移动得更慢。我从Client和Server类中添加了两段代码。请帮帮我。我乱丢了。提前谢谢。如果有必要,我会把整个代码。

//客户

代码语言:javascript
运行
复制
    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();       
    }
}

//服务器

代码语言:javascript
运行
复制
    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();   
    }   
}
EN

Stack Overflow用户

发布于 2016-05-15 20:44:24

解决了:)问题是如何满足客户端和服务器。我在while()之前添加了线程0,5s,现在它运行良好:)

谢谢大家。

票数 -1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37239424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档