// Servidor.
java
// Autor: FELIPE LUNA GARCIA
/*
====================================================================
=========================================
| |
| Este programa muestra una estructura básica del Servidor
|
| |
| |
====================================================================
=========================================
*/
import [Link];
import [Link];
import [Link];
import [Link].*;
import [Link].*;
class ServidorHilo extends Thread {
Socket client = null;
PrintWriter writer = null;
String outLine = null;
String inLine = null;
ServidorHilo(Socket socket) {
super("ServidorHilo");
[Link] = socket;
public void run() {
try {
String destName = [Link]().getHostName();
int destPort = [Link]();
[Link]("Aceptando conexion a "+destName+" en puerto "+
destPort+".");
BueredReader inStream = new BueredReader(new
InputStreamReader([Link]()));
writer = new PrintWriter([Link]());
boolean nished = alse;
//se denen todos los atributos que resulten necesarios en los servicios a
proporcionar
int numero=0;
double porcentaje=0;
String cadena="";
do {
//Se lee el mensaje enviado por el cliente
inLine = [Link]();
String opcode = new Obtenparam("OPCODE=",inLine).getParametro();
i ([Link]("1")) { //Obtener el 10% de la cantidad numérica
//se procede a obtener los datos también enviados para usarse en el servicio
numero = [Link](new
Obtenparam("NUMERO=",inLine).getParametro());
//se procede a eectuar el procesamiento solicitado. Por ejemplo, suponiendo
que se ha solicitado eectuar el
porcentaje=numero*0.1;
//se envía la respuesta
outLine ="PORCENTAJE="+[Link](porcentaje)+";";
[Link](outLine);
[Link]();
} else i ([Link]("2")) { //Obtener número de caracteres de la cadena
cadena = new Obtenparam("CADENA=",inLine).getParametro();
outLine = "NUMCARACTERES="+[Link]()+";";
[Link](outLine);
[Link]();
} else { //cualquier otra operación
} // n de servicios
} while(!nished); // n del do
} catch (IOException e) {
[Link]();
} // n de procedimiento run
//aquí ha terminado la clase hilo
//aquí inicia la clase principal y que es la del servidor padre o servidor principal
public class Servidor {
public static void main(String args[]){
boolean listening = true;
try{
ServerSocket server = new ServerSocket(1234);
int localPort = [Link]();
[Link]("Servidor escuchando en puerto: "+localPort+".");
while (listening) {
Socket client = [Link]();
new ServidorHilo(client).start();
[Link]();
}catch (IOException ex){
[Link]("excepcion: IOException .");
}
class Obtenparam {
String valorParam;
public Obtenparam (String ParExt, String CadExtDe)
int myStart;
int myStop;
valorParam="";
myStart = [Link](ParExt, 0);
i (myStart >= 0)
myStop = [Link](';',myStart);
i (myStop >= 0)
myStart = myStart + [Link]();
valorParam = [Link](myStart, myStop);
public String getParametro(){
return valorParam;