こんにちは、私はサーバーのこのコードを持っていて、ocupado(busy) が = 0 であるかどうかをチェックする if を追加しました。開いているビジー = 1 の場合はソケットを受け入れます。したがって、最初のユーザーが接続を終了するまで拒否しますが、動作しません...
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
/**
*
* @author www
*/
public class ServidorTCPBasico {
static int ocupado = 0; // = busy var to check
public static void main(String[] args) {
try {
// Instancia o ServerSocket ouvindo a porta 9000
ServerSocket servidor = new ServerSocket(9000);
System.out.println("Servidor ouvindo a porta 9000");
while(true) {
// o método accept() bloqueia a execução até que
// o servidor receba um pedido de conexão
Socket cliente = servidor.accept();
if(ocupado == 0) {
int ocupado = 1;
System.out.println("Cliente conectado: " + cliente.getInetAddress().getHostAddress());
System.out.println(ocupado);
ObjectOutputStream saida = new ObjectOutputStream(cliente.getOutputStream());
saida.flush();
// saida.writeObject(new Date());
saida.writeUTF("TEXTO TESTE PARA TRANSFERIR...");
saida.close();
// cliente.close();
} else {
System.out.println("Ocupado");
}
}
}
catch(Exception e) {
System.out.println("Erro: " + e.getMessage());
}
finally {
}
}
}
だから私の質問は、ソケットが一度に1つの接続のみを受け入れるようにする方法であり、ユーザーが確認ボックスで[OK]を押すと、サーバーは接続を閉じます..
確認ボックスなどの部分..追加します。私の問題は、クライアントが試行したときに接続を拒否する「ロジック」またはコマンドであり、後でクライアントで拒否された接続を処理します。