прошу прощения за ошибки в написании ...
Я использую NetBeans для запуска домашнего сервера и клиента, и все работает нормально. Как я уже говорил ранее, я использую «Socket» на моем клиенте и «ServerSocket» на моем SV. Я также использую JDBC Mysql на сервере.
Проблема начинается, когда я генерирую оба java-файла в их распространяемых папках и использую их. Клиент отправляет информацию на сервер (он начинается с .getOutputStream () и .getInputStream (), затем .flush ()), но сервер не получает никакого сообщения. Я пытался увидеть, где это останавливается, и это в
клиентов [i] = новый клиент (сервер. accept () , i);
Сумасшедшая вещь случается, когда я пытаюсь запустить свой сервер из NetBeans и клиент с моего рабочего стола ... Это работает! Таким образом, сервер должен быть проблемой. Я также использую открытый порт UDP и ищу IP-адрес сервера на 192.168.0.10 (это мой компьютер в локальной сети).
Надеюсь, кто-нибудь может мне помочь, заранее спасибо!
Здесь я вставляю свой код, извините, некоторые переменные написаны на испанском:
public ServidorMultiCliente () {
супер ("Servidor MultiCliente");
initComponents ();
try{
servidor = new ServerSocket( 500, maxNumberClients);
}catch(IOException excepcion){
excepcion.printStackTrace();
System.exit(1);
}
serverWriteBox.append("Server iniciated, waiting for connections..."); }
Я запускаю их с сервера:
public void ejecutar () {
clientsAcceptor.start ();
messagesListener.start (); }
Где clientAcceptor:
частный класс aceptadorClientes extends Thread {
public void run(){
for( int i = 1; i < maxNumberClients; i++ ){
try{
clientes[i] = new Cliente (servidor.accept(), i); // **Here it stops**
// It never reaches here... (without using NetBeans)
clientes[i].start();
clientes[i].aceptado = true;
}catch(IOException excepcion){
excepcion.printStackTrace();
}
}
Вот так я принимаю клиентов в разных темах. Я делаю то же самое с messageListener, который является новым потоком для каждого нового клиента. Это в цикле, всегда слушаю. И здесь я вставляю свой исполняемый Клиент, который отличается от класса Cliente, который я использовал в ServidorMultiCliente:
public Cliente () {
}
public Cliente(String host){
this.host = host;
this.executeConnection();
}
public void executeConnection(){
int connect = 0;
try {
cliente = new Socket(InetAddress.getByName(host), 500);
conectar = 1;
} catch (IOException ex) {
conectar = 0;
this.ejecutarConexion();
}
if(conectar == 1){
obtainFlows();
}
}
private void receiveFlows () {
try{
output= new ObjectOutputStream( cliente.getOutputStream());
output.flush(); // Here I should be "connected"
input = new ObjectInputStream(cliente.getInputStream());
} catch(IOException ex){
this.initiateDisconnection();
}
sendFlows("I'm connected!");
new messageListener().start(); // This is a thread
}