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="";
%>
}
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
GETandPOSTmethods. -
@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
GETmethod. - @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
POSTmethod. - @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]