RPC ubuntu y duda sobre screenshot

Iniciado por DoSser, Febrero 22, 2018, 05:44:25 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hola recien estoy iniciando con lo de los procedimientos a llamadas remotas y  tengo la duda sobre como hacer la conexion de dos maquinas ubuntu a traves de rcp dentro de una red lan. No planeo conectar las maquinas a traves de un cable cruzado, lo que deseo es usar mi wifi para conectarlas en lan pero no tengo ni idea de como hacerlo. eh revisado algunos videos en youtube pero al final solo lo hacen en localhost...

Mi otra duda es: recientemente subi una captura de mi pantalla de cel a un grupo en donde un tipo me comento "Mira ese M4 papu" yo me quede sorprendido por que no sé como supo que marca de cel tengo. Tengo entendido que facebook desde hace años borra los metadatos de las fotos..
alguna idea de como lo hizo?

bueeno espero puedan orientarme (:

Para RDP en ubuntu utilizo Remmina, es bastante facil de configurarlo e intuitivo.

Lo del celular no sabria decirte.

Saludos!


Hola DoSser, Con respecto a tu pregunta de RCP (Llamada a procedimiento remoto) no conozco mucho del tema pero estos dos links quizás te sirven para informarte un poco.
Cualquier cosa comenta donde estas trabado exactamente.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Y por el tema del teléfono, seguramente se visualizó alguna particularidad de ese modelo de teléfono, por ende ese usuario conocía y de ahí supo la marca. Un saludo! :D
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hola DoSser.
Tendrias que explicar un poco más sobre lo que quieres hacer para que te podamos ayudar mejor.
¿Cuando quieres conectar dos maquinas en tu lan con rcp cual es tu problema?.

En una estructuta cliente-servidor rpc es usado para que se ejecute codigo en el cliente generalmete,
Hay algunas librerias para hacer lo que comentas tan solo has de buscar un poco.

Ojo que no hay que confundir RCP (remote procedure call) con RDP (Remote desktop protocol).

La cosa es, ¿que necesitas hacer en esa conexion entre las maquinas? depende de eso tendras varias opciones.

un saludo.



Bueno creo no me supe explicar: recien comienzo trabajando con las llamadas a procedimientos remotos (RPC) estoy tratando de hacer la tipica calculadora donde el cliente solicita una operacion y el servidor debe resolverla, trabajo con rpcgen, este es el codigo que tengo: cabe mencionar que mi pregunta original era como conectar el cliente al servidor a traves de la lan, es decir que cliente y servidor esten en maquinas distintas pero ahora en el codigo me surgen mas dudas  por que inicia el servidor y el cliente pero no arrojan datos..
codigo calc.x
Código: c

#include "operadores.h"

program CALC
{
version CALC_VER
{
int OPCION(operadores) = 1;
} = 5;
} = 10;


codigo operadores.h
Código: c

struct operadores
{
int a;
int b;
int opcion;
};


los siguientes archivos son generados por rpc gen, ya los modifique:
calc_client.c
Código: c

#include "calc.h"


void
calc_5(char *host)
{
CLIENT *clnt;
int  *result_1;
operadores  opcion_5_arg;

#ifndef DEBUG
clnt = clnt_create (host, CALC, CALC_VER, "udp");
if (clnt == NULL) {
clnt_pcreateerror (host);
exit (1);
}
#endif /* DEBUG */


result_1 = opcion_5(&opcion_5_arg, clnt);
if (result_1 == (int *) NULL) {
clnt_perror (clnt, "call failed");
}else
{
do
{

printf("-------------------------\n");
printf("    CALCULADORA RPC \n");
printf("-------------------------\n");
printf("Elija una operacion: \n");
printf("1 _> suma \n");
printf("2 _> resta \n");
printf("3 _> multiplicacion \n");
printf("4 _> division \n");
printf("5 _> salir \n");
printf("\n Introduzca su opcion: \n");

scanf("%i", &opcion_5_arg.opcion);


printf("Introduzca el primer numero \n");
scanf("%i", &opcion_5_arg.a);
printf("\n Introduzca el segundo numero \n");
scanf("%i", &opcion_5_arg.b);

printf("El resultado es: %i \n", *result_1);
printf("\n");
}while(opcion_5_arg.opcion != 5);


}
#ifndef DEBUG
clnt_destroy (clnt);
#endif /* DEBUG */
}


int
main (int argc, char *argv[])
{
char *host;

if (argc < 2) {
printf ("usage: %s server_host\n", argv[0]);
exit (1);
}
host = argv[1];
calc_5 (host);
exit (0);
}


calc_server.c
Código: c

#include "calc.h"

int *
opcion_5_svc(operadores *argp, struct svc_req *rqstp)
{
static int  result;
static int op;

printf("-------------------------\n");
printf("    SERVIDOR EN LINEA\n");
printf("-------------------------\n");

op = argp->opcion;
printf("%i",op);

if(op = 1)
{
result = argp->a + argp->b;
}
if(op = 2)
{
result = argp->a - argp->b;
}
if(op = 3)
{
result = argp->a * argp->b;
}
if(op = 4)
{
result = argp->a / argp->b;
}


return &result;
};

este ultimo archivo no se edita, pero como lo llama desde calc_server entonces lo dejo
calc.h
Código: c

#ifndef _CALC_H_RPCGEN
#define _CALC_H_RPCGEN

#include <rpc/rpc.h>


#ifdef __cplusplus
extern "C" {
#endif


struct operadores {
int a;
int b;
int opcion;
};
typedef struct operadores operadores;

#define CALC 10
#define CALC_VER 5

#if defined(__STDC__) || defined(__cplusplus)
#define OPCION 1
extern  int * opcion_5(operadores *, CLIENT *);
extern  int * opcion_5_svc(operadores *, struct svc_req *);
extern int calc_5_freeresult (SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define OPCION 1
extern  int * opcion_5();
extern  int * opcion_5_svc();
extern int calc_5_freeresult ();
#endif /* K&R C */

/* the xdr functions */

#if defined(__STDC__) || defined(__cplusplus)
extern  bool_t xdr_operadores (XDR *, operadores*);

#else /* K&R C */
extern bool_t xdr_operadores ();

#endif /* K&R C */

#ifdef __cplusplus
}
#endif

#endif /* !_CALC_H_RPCGEN */