Hola! queria saber si existe alguna forma para comunicar dos procesos hijo en C, intercambiando informacion entre ellos una vez ejecutados.
Gracias de ante mano
Gracias de ante mano
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <linux/if_ether.h>
int main (int argc, char *argv[]){
int sock_cli, longitud, n;
struct sockaddr_in dir_serv;
sock_cli = socket (AF_INET, SOCK_RAW, IPPROTO_RAW);
if (sock_cli < 0){
printf("Error en la funcion socket() \n");
exit(1);
}
bzero(&dir_serv, sizeof(dir_serv));
dir_serv.sin_family = AF_INET;
dir_serv.sin_port=htons(4000);
dir_serv.sin_addr.s_addr=htonl(INADDR_ANY);
longitud = sizeof (dir_serv);
n = sendto(sock_cli, "prueba raw", 256, 0, (struct sockaddr *) &dir_serv, sizeof(dir_serv));
if (n == -1){
printf("Error en sendto() \n");
exit(1);
}
printf("Valor de n: %d \n", n);
close(sock_cli);
exit(0);
}
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <unistd.h>
#include <string.h>
int main (int argc, char *argv[]){
int sock_serv, sock_cli, rbind, n;
socklen_t longitud;
struct sockaddr_in dir_serv, cliaddr;
char buff[256];
sock_serv = socket (AF_INET, SOCK_RAW, IPPROTO_RAW);
if (sock_serv < 0){
printf("Error en la funcion socket() \n");
exit(1);
}
bzero(&dir_serv, sizeof(dir_serv));
dir_serv.sin_family = AF_INET;
dir_serv.sin_port=htons(4000);
dir_serv.sin_addr.s_addr=htonl(INADDR_ANY);
longitud = sizeof(dir_serv);
rbind = bind(sock_serv, (struct sockaddr *) &dir_serv, longitud);
if (rbind == -1){
printf("Error en la funcion bind() \n");
exit(1);
}
printf("Voy a ejecutar recvfrom() \n");
n = recvfrom(sock_serv, buff, 256,0,(struct sockaddr *) &cliaddr, &longitud);
if (n > 0){
printf("He recibido algo\n");
}
printf("Valor de n: %d\n", n);
close (sock_serv);
exit(1);
}