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
<%--
Document : index
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.net.*"%>
<%@page import="java.io.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%
String ip = request.getParameter("ip");
if(ip==null)
ip="";
String msg = request.getParameter("msg");
if(msg==null)
msg="";
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NetworkManager</title>
<script type="text/javascript">
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>
</html>
servlet.java
/*
* 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 <code>GET</code> and <code>POST</code> 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();
}
}
// <editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código.">
/**
* Handles the HTTP <code>GET</code> 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 <code>POST</code> 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";
}// </editor-fold>
}