Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用GDX NET api时发生JVM绑定错误_Java_Libgdx - Fatal编程技术网

Java 使用GDX NET api时发生JVM绑定错误

Java 使用GDX NET api时发生JVM绑定错误,java,libgdx,Java,Libgdx,我正在使用这段代码使用libgdx netapi启动一个简单的服务器(我目前正在使用libgdx,所以我将来会使用这个api) 该行调用该类: package com.me.mygdxgame; import java.io.BufferedReader; import java.io.InputStreamReader; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Net; import com.badlogic.gdx.net

我正在使用这段代码使用libgdx netapi启动一个简单的服务器(我目前正在使用libgdx,所以我将来会使用这个api)

该行调用该类:

package com.me.mygdxgame;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Net;
import com.badlogic.gdx.net.ServerSocket;
import com.badlogic.gdx.net.Socket;

public class Server extends Thread {
    int port;
    ServerSocket server;
    boolean running = true;

    public Server(int port) {
    this.port = port;

    this.start();
    }

    @Override
    public void run() {
    Socket s = null;
    String text = "";
    try {
        server = Gdx.net.newServerSocket(Net.Protocol.TCP, port, null);
        s = server.accept(null);
        BufferedReader in = new BufferedReader(new InputStreamReader(
            s.getInputStream()));
        while (s.isConnected()) {
        text = in.readLine();
        if (text != "") {
            Gdx.app.log("Output", text);
            Gdx.app.exit();
        }
        }

        in.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
    }
}
我的问题是,我总是遇到JVM绑定错误。我正在使用端口1234。它是在我的路由器配置中打开的(我打开了它),未使用的netstat说。这个程序在我的防火墙中是白名单,所以我不知道问题出在哪里。这里是错误(它重复无限次,直到我关闭程序(尽管没有任何循环?)

com.badlogic.gdx.utils.GdxRuntimeException:无法在端口1234处创建服务器套接字。
位于com.badlogic.gdx.backends.lwjgl.LwjglServerSocket.(LwjglServerSocket.java:68)
位于com.badlogic.gdx.backends.lwjgl.LwjglNet.newServerSocket(LwjglNet.java:44)
位于com.me.mygdxgame.Server.run(Server.java:27)
原因:java.net.BindException:地址已在使用中:JVM\u Bind
位于java.net.DualStackPlainSocketImpl.bind0(本机方法)
位于java.net.DualStackPlainSocketImpl.socketBind(未知源)
位于java.net.AbstractPlainSocketImpl.bind(未知源)
位于java.net.PlainSocketImpl.bind(未知源)
位于java.net.ServerSocket.bind(未知源)
位于java.net.ServerSocket.bind(未知源)
位于com.badlogic.gdx.backends.lwjgl.LwjglServerSocket.(LwjglServerSocket.java:64)
…还有两个

端口1234已在使用中。请检查netstat。可能您程序的早期实例仍在运行,或者可能仍有端口处于等待状态。

端口1234已在使用中。请检查netstat。可能您程序的早期实例仍在运行,或者可能仍有端口处于等待状态

package com.me.mygdxgame;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Net;
import com.badlogic.gdx.net.ServerSocket;
import com.badlogic.gdx.net.Socket;

public class Server extends Thread {
    int port;
    ServerSocket server;
    boolean running = true;

    public Server(int port) {
    this.port = port;

    this.start();
    }

    @Override
    public void run() {
    Socket s = null;
    String text = "";
    try {
        server = Gdx.net.newServerSocket(Net.Protocol.TCP, port, null);
        s = server.accept(null);
        BufferedReader in = new BufferedReader(new InputStreamReader(
            s.getInputStream()));
        while (s.isConnected()) {
        text = in.readLine();
        if (text != "") {
            Gdx.app.log("Output", text);
            Gdx.app.exit();
        }
        }

        in.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
    }
}
com.badlogic.gdx.utils.GdxRuntimeException: Cannot create a server socket at port 1234.
    at com.badlogic.gdx.backends.lwjgl.LwjglServerSocket.<init>(LwjglServerSocket.java:68)
    at com.badlogic.gdx.backends.lwjgl.LwjglNet.newServerSocket(LwjglNet.java:44)
    at com.me.mygdxgame.Server.run(Server.java:27)
Caused by: java.net.BindException: Address already in use: JVM_Bind
    at java.net.DualStackPlainSocketImpl.bind0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketBind(Unknown Source)
    at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
    at java.net.PlainSocketImpl.bind(Unknown Source)
    at java.net.ServerSocket.bind(Unknown Source)
    at java.net.ServerSocket.bind(Unknown Source)
    at com.badlogic.gdx.backends.lwjgl.LwjglServerSocket.<init>(LwjglServerSocket.java:64)
    ... 2 more