Witam
Chciałbym uzyskać taki efekt, mam 2 terminalne, na jednym jest odpalony serwer na drugim klient. I wysyłam klientem wiadomość do serwera, ten tę wiadomość pokazuje i odsyła jakąkolwiek do klienta. Jedyne co jestem w stanie napisać to napisać 2 programy które będą zarówno klientem i serwerem, to znaczy że będą przyjmować wiadomość od każdego, a mi zależy żeby wiadomość którą wyśle klient do serwera, serwer odesłał z powrotem do tego samego klienta. Czy coś takiego jest możliwe ?
Mam taki kod:
Klient
#include <stdlib.h>
#include <stdio.h>
#define PERM 0666
#define KLUCZ_KOM (key_t)1231
struct m_komunikat {
long typ;
char z1;
};
int main(int argc, char *argv[]) {
int kom, kon, i, ik, czas;
struct m_komunikat msg;
kom=msgget(KLUCZ_KOM, 0);
msg.z1='5';
msg.typ=2;
msgsnd(kom, &msg, sizeof(msg),0);
exit (0);
}
i Serwer:
#include <stdlib.h>
#include <stdio.h>
#include <sys/msg.h>
#define PERM 0660
#define KLUCZ_KOM (key_t)1231
struct m_komunikat {
long typ;
char z1;
};
int kom, kon;
int main(void) {
struct m_komunikat msg;
kom=msgget(KLUCZ_KOM, PERM | IPC_CREAT);
kon=1;
while(kon){
if ((msgrcv(kom,&msg,sizeof(msg),0 ,0))==-1) {
perror("\n S.msgrcv error ");
kon=0;
} else {
switch(msg.typ) {
case 1:
kon=0;
break;
case 2:
printf("%c\n",msg.z1);
break;
default:
break;
}
}
}
msgctl(kom, IPC_RMID, 0);
return (0);
}
Bardzo mi zależy na tym, proszę o jakiekolwiek wskazówki.
Pozdrawiam