Estava tentando trocar informações com proxy do bungeecord usando sockets, porem está dando alguns erros.
Erro:
14:41:37 [GRAVE] java.net.BindException: Address already in use: JVM_Bind
14:41:37 [GRAVE] at java.net.TwoStacksPlainSocketImpl.socketBind(Native Method)
14:41:37 [GRAVE] at java.net.TwoStacksPlainSocketImpl.socketBind(Unknown Source)
14:41:37 [GRAVE] at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
14:41:37 [GRAVE] at java.net.TwoStacksPlainSocketImpl.bind(Unknown Source)
14:41:37 [GRAVE] at java.net.PlainSocketImpl.bind(Unknown Source)
14:41:37 [GRAVE] at java.net.ServerSocket.bind(Unknown Source)
14:41:37 [GRAVE] at java.net.ServerSocket.<init>(Unknown Source)
14:41:37 [GRAVE] at java.net.ServerSocket.<init>(Unknown Source)
14:41:37 [GRAVE] at Java.ProxyClient.run(ProxyClient.java:13)
14:41:37 [GRAVE] at java.lang.Thread.run(Unknown Source)
Codigo:
package Java;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class ProxyClient implements Runnable {
@Override
public void run() {
while(true){
try {
ServerSocket server = new ServerSocket(10000);//Linha 13
System.out.println("[Proxy] Esperando servidor se conectar!");
System.out.println("[Proxy] IP: " + server.getInetAddress().getHostAddress() + ":" + server.getLocalPort());
Socket socket = server.accept();
new Thread(new ProxyManagerClient(socket), "ProxyManager").start();;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
ProxyManagerClient
package Java;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;
public class ProxyManagerClient implements Runnable {
private Socket socket;
public ProxyManagerClient(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
Scanner scanner = new Scanner(socket.getInputStream());
String text = scanner.nextLine();
scanner.close();
String[] data = text.split("-");
String name = data[0];
String ip = data[1];
Status action = Status.valueOf(data[2]);
int max = Integer.valueOf(data[3]);
Server server = Servers.get(name);
if(server == null){
server = new Server(name, ip.split(":")[0], Integer.parseInt(ip.split(":")[1]));
}
server.setStatus(action);
server.setMaxPlayers(max);
Servers.register(server);
System.out.println("[Servidor] O servidor " + name + " foi " + action.toString() + " agora!" );
System.out.println("[Servidor] IP: " + ip);
} catch (IOException | IllegalArgumentException e) {
e.printStackTrace();
}
}
}
Classe que envia o socket:
package Bukkit.Network;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
public class Network {
private Socket socket;
private PrintWriter pw;
public Network(){
try{
socket = new Socket("0.0.0.0", 10000);
pw = new PrintWriter(socket.getOutputStream());
}catch(IOException e){
e.printStackTrace();
}
}
public void send(String msg){
pw.println(msg);
}
}
Procurei na internet e vi que isso pode ser que a porta esteja sendo usada, porem coloquei uma porta muito alto e continua dando erro. Ja até reiniciei o PC para saber se era um erro no windows mas permanece esse erro.
Pergunta
Skizz
Estava tentando trocar informações com proxy do bungeecord usando sockets, porem está dando alguns erros.
Erro:
Codigo:
ProxyManagerClient
Classe que envia o socket:
Procurei na internet e vi que isso pode ser que a porta esteja sendo usada, porem coloquei uma porta muito alto e continua dando erro. Ja até reiniciei o PC para saber se era um erro no windows mas permanece esse erro.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados