Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TCP_SERVER.java :
- MAIN:
- no while de uma nova connecao.
- //notify TCP load.
- notify_load load = new notify_load(client_counter,client,rmi,udp_connections,port);
- load.start();
- -----------------------------------------------------------------------
- class notify_load extends Thread{
- private udp_transfer_client udp_connections;
- private int[] client_counter;
- private Socket client;
- private int port;
- Services rmi;
- notify_load(int [] client_counter,Socket client,Services rmi,udp_transfer_client udp_connections,int port){
- this.udp_connections=udp_connections;
- this.client_counter=client_counter;
- this.client=client;
- this.port=port;
- this.rmi=rmi;
- }
- public void run(){
- int tcp_count;
- while(true) {
- try {
- tcp_count=rmi.count_tcp_server();
- String send_message="";
- String[] load = udp_connections.tcp_load(client_counter, client, tcp_count,port);
- DataOutputStream outS;
- outS = new DataOutputStream(client.getOutputStream());
- for(int i=0;i<load.length;i++){
- if(!load[i].contains("null")){
- send_message+=load[i];
- }
- }
- outS.writeUTF(send_message);
- Thread.sleep(60000);
- } catch (InterruptedException | IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- -------------------------------------------------------------------------
- udp_server_transfer:
- public String [] tcp_load(int [] client_counter,Socket client,int tcp_count,int port){
- String texto = "get_number_clients";
- DataOutputStream out;
- String [] servers_clients= new String[2];
- DatagramSocket aSocket=null;
- this.tcp_count=tcp_count;
- try {
- aSocket = new DatagramSocket();
- for(int i=1;i<this.tcp_count;i++) {
- int serverPort = ports[i-1];
- byte[] m = texto.getBytes();
- DatagramPacket request = new DatagramPacket(m, m.length, aHost, serverPort);
- aSocket.send(request);
- byte[] buffer = new byte[1000];
- DatagramPacket reply_number = new DatagramPacket(buffer, buffer.length);
- aSocket.receive(reply_number);
- String reply = new String(reply_number.getData(), 0, reply_number.getLength());
- servers_clients[i-1]=reply;
- }
- String [] retorno = new String[3];
- retorno [0] = "Port - " + port+" : "+ client_counter[0];
- retorno [1] = " | Port - " + (ports[0]+250) +" : "+ servers_clients[0];
- retorno [2] = " | Port - " + (ports[1]+250) +" : "+servers_clients[1];
- return retorno;
- }catch (SocketException e){System.out.println("Socket: " + e.getMessage());
- }catch (IOException e){System.out.println("IO: " + e.getMessage());
- }finally {if(aSocket != null) aSocket.close();}
- return null;
- }
- private int compare_servers(String [] servers_clients,int [] client_counter) {
- if (this.tcp_count == 3) {
- if (servers_clients[0].compareTo("" + client_counter[0]) >= 0 && servers_clients[1].compareTo("" + client_counter[0]) >= 0) {
- return -1;
- } else if (servers_clients[0].compareTo("" + client_counter[0]) < 0) {
- client_counter[0]--;
- return 0;
- } else {
- client_counter[0]--;
- return 1;
- }
- } else if (this.tcp_count == 2) {
- System.out.println("oanioa");
- if (servers_clients[0].compareTo("" + client_counter[0]) >= 0) {
- return -1;
- } else if (servers_clients[0].compareTo("" + client_counter[0]) < 0) {
- client_counter[0]--;
- return 0;
- }
- } else if (this.tcp_count == 1) {
- return -1;
- }
- return -3;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement