public static void beAPeer() throws IOException, ParseException {

        // variáveis locais
        Message localMsg = new Message();
        String msgIn;
        String msgOut;
        CommonMessage4Parameters msg4param = new CommonMessage4Parameters();
        CommonMessage4Parameters msg4ParamLocal = new CommonMessage4Parameters();

        // cria socket do peer como servidor na porta 9876
        ServerSocket socket = new ServerSocket(9876);

        try {

            Socket socketPeerConnection0 = socket.accept();

            // lê o que está no socket e transforma para json
            msgIn = localMsg.receiveMsg(socketPeerConnection0);
            msg4ParamLocal = msg4param.stringToObjec4Param(msgIn);

            // testa se a mensagem é um ping de outro peer                
            if (msg4ParamLocal.getProtocol().equals("pcmj") && msg4ParamLocal.getCommand().equals("ping")) {

                // lê o ip de quem enviou a mensagem
                String senderIp = msg4ParamLocal.getSender();
                // cria a mensagem pong
                msgOut = pong(senderIp);
                // envia o pong para o cliente
                localMsg.sendMsg(socketPeerConnection0, msgOut);

            }
            
            socketPeerConnection0.close();
            
            Socket socketPeerConnection1 = socket.accept();
            
            // lê o que está no socket e transforma para json
            msgIn = localMsg.receiveMsg(socketPeerConnection1);
            msg4ParamLocal = msg4param.stringToObjec4Param(msgIn);

            // testa se a mensagem é um ping de outro peer                
            if (msg4ParamLocal.getProtocol().equals("pcmj") && msg4ParamLocal.getCommand().equals("authenticate")) {

                // lê o ip de quem enviou a mensagem
                String senderIp = msg4ParamLocal.getSender();
                // cria a mensagem pong
                msgOut = authenticateBack(senderIp);
                // envia o pong para o cliente
                localMsg.sendMsg(socketPeerConnection1, msgOut);

            }
            
            socketPeerConnection1.close();
            
            // archive-list-back e archive-request-back não foram implementados.
            

        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // T = new String()ODO Auto-generated catch block
            e.printStackTrace();
        }

    }