libGDX客户端(服务器)客户端连接
libGDX client (server) client connection
我正在尝试创建一款多人游戏。
我认为可以通过三种方式做到这一点:
1. Port Forwarding
只有少数人会在他们的路由器上打开一个端口。
2. UDP / TCP hole punching
这非常复杂,不适用于每个路由器/NAT。
3. Relay Server
我认为这是完成多人游戏最简单的方法。
所以我的计划是建立到 PHP 服务器的套接字连接,该服务器也将与其他玩家建立套接字连接并传递数据。
当时我在 Java 中有一个客户端部分和一个测试服务器部分:
SocketHints hints = new SocketHints();
Socket client = Gdx.net.newClientSocket(Net.Protocol.TCP, textfield.getText(), 9021, hints);
try {
client.getOutputStream().write((textfield2.getText() + "\n").getBytes());
} catch (IOException e) {
e.printStackTrace();
}
和
new Thread(new Runnable() {
@Override
public void run() {
ServerSocketHints serverSocketHint = new ServerSocketHints();
serverSocketHint.acceptTimeout = 0;
ServerSocket serverSocket = Gdx.net.newServerSocket(Net.Protocol.TCP, 9021, serverSocketHint);
while (true) {
Socket socket = serverSocket.accept(null);
BufferedReader buffer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
try {
status += "Receiving message: \"" + buffer.readLine() + "\"\n\n";
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
如何从客户端的套接字连接中接收数据?
是否有更好的方法来做到这一点?
那么,您想从 PHP 创建一个套接字服务器吗?我不推荐它。尝试使用 kryonet。这是一个 java 套接字客户端和服务器,在 Java.
中使用起来很简单
如果你想让服务器在线,运行你的服务器上的 Kryonet 套接字服务器可用 public IP。
我正在尝试创建一款多人游戏。 我认为可以通过三种方式做到这一点:
1. Port Forwarding
只有少数人会在他们的路由器上打开一个端口。
2. UDP / TCP hole punching
这非常复杂,不适用于每个路由器/NAT。
3. Relay Server
我认为这是完成多人游戏最简单的方法。 所以我的计划是建立到 PHP 服务器的套接字连接,该服务器也将与其他玩家建立套接字连接并传递数据。
当时我在 Java 中有一个客户端部分和一个测试服务器部分:
SocketHints hints = new SocketHints();
Socket client = Gdx.net.newClientSocket(Net.Protocol.TCP, textfield.getText(), 9021, hints);
try {
client.getOutputStream().write((textfield2.getText() + "\n").getBytes());
} catch (IOException e) {
e.printStackTrace();
}
和
new Thread(new Runnable() {
@Override
public void run() {
ServerSocketHints serverSocketHint = new ServerSocketHints();
serverSocketHint.acceptTimeout = 0;
ServerSocket serverSocket = Gdx.net.newServerSocket(Net.Protocol.TCP, 9021, serverSocketHint);
while (true) {
Socket socket = serverSocket.accept(null);
BufferedReader buffer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
try {
status += "Receiving message: \"" + buffer.readLine() + "\"\n\n";
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
如何从客户端的套接字连接中接收数据?
是否有更好的方法来做到这一点?
那么,您想从 PHP 创建一个套接字服务器吗?我不推荐它。尝试使用 kryonet。这是一个 java 套接字客户端和服务器,在 Java.
中使用起来很简单如果你想让服务器在线,运行你的服务器上的 Kryonet 套接字服务器可用 public IP。