Duvida!Servlet Java manipulando socket C

Bom dia galera.Estou fazendo um trab pra facu e preciso substituir um console em C por uma interface JSP.
O console faz: Lista cliente conectados, executa processo no cliente, lista processos no cliente, mata os processos.
Bom, a pagina jsp faz uma requisicao pra um Servlet que se passa de Cliente para conectar via Socket no servidor em C.
A conexao e enviar e receber uma msg no servidor para o Jsp eu consigo…porem nao consigo e nao sei como fazer pra enviar comandos
ou usar as funcoes implementadas em c no servidor…Sei da possibilida de usar Métodos nativos(JNI), mas nesse caso sera q precisaria??
Se alguem puder me ajudar, ficaria muito grato!! vou anexar parte do código JSP, o servlet .Caso precise coloco parte do codigo em C.
index.jsp

[code]<%–
Document : index

–%>

<%@page contentType=“text/html” pageEncoding=“UTF-8”%>
<%@page import=“java.net."%>
<%@page import="java.io.
”%>

<%
String ip = request.getParameter(“ip”);
if(ip==null)
ip="";
String msg = request.getParameter(“msg”);
if(msg==null)
msg="";
%>

NetworkManager var httpObject; function processaResposta(){ if(httpObject.readyState==4){ document.getElementById("msg").innerHTML=httpObject.responseText; }
        }
        function requisicaoAjax(){
          if (window.XMLHttpRequest){
            httpObject=new XMLHttpRequest();
          }else if (window.ActiveXObject){
            httpObject=new ActiveXObject("Microsoft.XMLHTTP");
          }else{
            alert("Navegador não suporta Ajax");
          }
          httpObject.onreadystatechange=processaResposta;
          httpObject.open("GET","monitor",true);
          httpObject.send(null);
          var p = setTimeout("requisicaoAjax()", 10000)
        }
        requisicaoAjax();
    </script>
</head>
<body>
    <form action="index.jsp" method="get">
        Endereço IP:<br>
        <input type="text" name="ip" value="<%=ip%>" size="15">
        <br>
        Mensagem:<br>
        <input type="text" name="msg" value="<%=msg%>" size="80">
        <br><br>
        <input type="submit" value="Buscar">
    </form>
    <%
        try{
            byte buffer[]=new byte[2000];
            if(!ip.trim().equals("")){
                Socket s = new Socket(ip, 4321);
                InputStream is = s.getInputStream();
                OutputStream os = s.getOutputStream();
                DataOutputStream dos = new DataOutputStream(os);
                dos.writeUTF(msg);
                int rec = is.read(buffer);
                byte recebido[] = new byte[rec];
                for(int i=0; i<rec;i++)
                    recebido[i] = buffer[i];
                String retorno = new String(recebido);
                out.println("<DIV style='color:blue'>Mensagem recebida: " +  retorno + "</DIV>");
            }
         }catch(Exception e){
             out.println("<DIV style='color:red'>" + e.getMessage() + "</DIV>");
         }
    %>
    <div id="msg"></div>
</body>
[/code] servlet.java [code] /* * To change this template, choose Tools | Templates * and open the template in the editor. */

package networkmanager;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.;
import java.io.
;
/**
*

  • @author
    */
    public class monitor extends HttpServlet {

    /**

    • Processes requests for both HTTP GET and POST methods.

    • @param request servlet request

    • @param response servlet response

    • @throws ServletException if a servlet-specific error occurs

    • @throws IOException if an I/O error occurs
      */
      protected void processRequest(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      response.setContentType(“text/html;charset=UTF-8”);
      PrintWriter out = response.getWriter();
      try {

       byte buffer[]=new byte[2000];
       Socket s = new Socket("127.0.0.1", 4321);
       InputStream is = s.getInputStream();
       int rec = is.read(buffer);
       byte recebido[] = new byte[rec];
       for(int i=0; i<rec;i++)
         recebido[i] = buffer[i];
       String retorno = new String(recebido);
       out.println("<b>" + retorno + "</b>");
      

      } catch(Exception e){
      out.println("ERRO: " + e.getMessage());
      } finally {
      out.close();
      }
      }

    //
    /**

    • Handles the HTTP GET method.
    • @param request servlet request
    • @param response servlet response
    • @throws ServletException if a servlet-specific error occurs
    • @throws IOException if an I/O error occurs
      */
      @Override
      protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      processRequest(request, response);
      }

    /**

    • Handles the HTTP POST method.
    • @param request servlet request
    • @param response servlet response
    • @throws ServletException if a servlet-specific error occurs
    • @throws IOException if an I/O error occurs
      */
      @Override
      protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      processRequest(request, response);
      }

    /**

    • Returns a short description of the servlet.
    • @return a String containing servlet description
      */
      @Override
      public String getServletInfo() {
      return “Short description”;
      }//

}
[/code]