Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Rozesłanie wiadomości do wszystkich z uruchomioną aplikacją podpiętą pod jedną kolejkę o tym samym keyu

Ostatnio zmodyfikowano 2013-12-02 16:14
Autor Wiadomość
marcopolo
Temat założony przez niniejszego użytkownika
[C] Rozesłanie wiadomości do wszystkich z uruchomioną aplikacją podpiętą pod jedną kolejkę o tym samym keyu
» 2013-12-01 11:50:38
Witajcie,

mam program, który odbiera i wysyła wiadomości, i na odwrót. Czyli 2 programy.

I teraz jest taka kwestia. Program, który powinien odebrać wiadomość i rozesłać ją dalej, do osób, które mają uruchomioną aplikację nie działa do końca tak, jak trzeba, gdyż zwraca tylko wiadomość tej osobie, co ją wysłała mimo że typ jest taki sam.

Klient-wysyłanie:
C/C++
struct msg {
    long int type;
    char a[ 1024 ];
    int pid;
} p, p1;

int main() {
    int m;
   
    while( 1 ) {
       
        m = msgget( 1000, 0 );
        p.type = 1;
       
        scanf( "%s", & p.a );
       
        pid_t pid;
       
        p.pid = getpid();
       
        getchar();
       
        msgsnd( m, & p, sizeof( p ), 0 );
       
        msgrcv( m, & p1, sizeof( p ), 2, 0 );

Serwer-odbieranie i rozsyłanie do innych klientów:
C/C++
struct msg {
    long int type;
    char a[ 1024 ];
    int pid;
} p;

int main() {
    int m;
   
   
    while( 1 ) {
        msgrcv( m, & p, sizeof( p ), 1, 0 );
       
        p.type = 2;
        p.pid = getpid();
       
        msgsnd( m, & p, sizeof( p ), 0 );

No i niestety - typ sie zgadza z tym co chce odebrac klient, ale odbiera tylko ten, który wysłał, a tego nie rozumiem. Jakieś wskazówki ?
P-98002
marcopolo
Temat założony przez niniejszego użytkownika
» 2013-12-01 16:15:35
No nikt nie ma pomyslu ?
P-98025
marcopolo
Temat założony przez niniejszego użytkownika
» 2013-12-02 15:08:42
Rozumiem, ze Was to przeroslo.
P-98085
pekfos
» 2013-12-02 15:11:55
Albo nikt tego nie używa i/lub podałeś za mało kodu by sprawdzić działanie i poeksperymentować.
P-98087
marcopolo
Temat założony przez niniejszego użytkownika
» 2013-12-02 16:14:42
Ale to już jest cały kod, który odpowiada za komunikację..
P-98094
« 1 »
  Strona 1 z 1