Example usage for com.badlogic.gdx.net ServerSocketHints ServerSocketHints

List of usage examples for com.badlogic.gdx.net ServerSocketHints ServerSocketHints

Introduction

In this page you can find the example usage for com.badlogic.gdx.net ServerSocketHints ServerSocketHints.

Prototype

ServerSocketHints

Source Link

Usage

From source file:com.badlogic.gdx.tests.net.PingPongSocketExample.java

License:Apache License

@Override
public void create() {
    // setup a server thread where we wait for incoming connections
    // to the server
    new Thread(new Runnable() {
        @Override//  w  w w.  ja va2  s.  c  o m
        public void run() {
            ServerSocketHints hints = new ServerSocketHints();
            ServerSocket server = Gdx.net.newServerSocket(Protocol.TCP, 9999, hints);
            // wait for the next client connection
            Socket client = server.accept(null);
            // read message and send it back
            try {
                String message = new BufferedReader(new InputStreamReader(client.getInputStream())).readLine();
                Gdx.app.log("PingPongSocketExample", "got client message: " + message);
                client.getOutputStream().write("PONG\n".getBytes());
            } catch (IOException e) {
                Gdx.app.log("PingPongSocketExample", "an error occured", e);
            }
        }
    }).start();

    // create the client send a message, then wait for the
    // server to reply
    SocketHints hints = new SocketHints();
    Socket client = Gdx.net.newClientSocket(Protocol.TCP, "localhost", 9999, hints);
    try {
        client.getOutputStream().write("PING\n".getBytes());
        String response = new BufferedReader(new InputStreamReader(client.getInputStream())).readLine();
        Gdx.app.log("PingPongSocketExample", "got server message: " + response);
    } catch (IOException e) {
        Gdx.app.log("PingPongSocketExample", "an error occured", e);
    }
}

From source file:com.wotf.game.Networking.NetworkUtil.java

private void initHostNetworkListener() {
    ServerSocketHints serverSocketHint = new ServerSocketHints();

    // This prevents the host from dropping out, when in production set it to an appropiate value
    serverSocketHint.acceptTimeout = 0;//from w ww  . j  a  v a2s.c om

    // Create the socket server using TCP protocol and listening on 9021
    ServerSocket serverSocket = Gdx.net.newServerSocket(Net.Protocol.TCP, Port, serverSocketHint);

    // Accept any incoming connections
    this.socket = serverSocket.accept(null);

    messageListener(true);
}

From source file:us.notsoserio.ninja.network.server.MasterServer.java

License:Apache License

public MasterServer() {

    clientList = new ConcurrentHashMap<Integer, ConnectedClient>();
    newMessages = new ConcurrentHashMap<Integer, String>();
    receivedMessages = new ConcurrentHashMap<Integer, String>();

    //Why 6969? Partially because I couldn't find an official use for this port, and partly because I'm 12 on the inside.
    new Thread(new Runnable() {
        @Override/*from   ww w . j a  va  2s. co  m*/
        public void run() {
            ServerSocketHints hints = new ServerSocketHints();
            hints.acceptTimeout = 0;
            Gdx.app.log("Network", "Waiting for clients");
            ServerSocket serverSocket = Gdx.net.newServerSocket(Protocol.TCP, 6969, hints);
            //noinspection InfiniteLoopStatement
            while (true) {
                ConnectedClient newClient = new ConnectedClient(serverSocket.accept(null));
                clientList.put(newClient.hashCode(), newClient);
                Gdx.app.log("Network", "Client Connected from " + newClient.GetHost());
            }
        }
    }).start();

    new Thread(new Runnable() {
        @Override
        public void run() {
            Iterator clientIterator;
            Iterator messagesIterator;
            String[] messages;
            //noinspection InfiniteLoopStatement
            while (true) {
                clientIterator = clientList.values().iterator();
                messagesIterator = newMessages.values().iterator();
                messages = new String[newMessages.size()];
                int counter = 0;
                while (messagesIterator.hasNext()) {
                    messages[counter++] = (String) messagesIterator.next();
                }
                newMessages.clear();
                AddMessage("0");
                while (clientIterator.hasNext()) {
                    ConnectedClient client = (ConnectedClient) clientIterator.next();
                    String[] received = null;
                    if (client.isActive()) {
                        received = client.ProcessMessages(messages);
                    } else {
                        clientIterator.remove();
                    }
                    if (received != null) {
                        for (int i = 0; i < received.length; i++) {
                            receivedMessages.put(received[i].hashCode(), received[i]);
                            Gdx.app.log("test", received[i]);
                        }
                    }
                }
            }
        }
    }).start();

}