Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] comunicazione tra processi

    Ciao a tutti.
    Sto realizzando il classico programmino produttore-fornitore in C, per un progetto all'Università.
    Il programma(molto semplice) vede un processo produttore padre che crea N figli, che consumano delle materie prime(ognuno le sue). Una volta terminate contattano un processo fornitore, che crea un processo figlio per gestire la richiesta e torna in attesa di ulteriori richieste da parte dei produttori.
    Stavo pensando ad una comunicazione tramite socket con mutua esclusione al momento della chiamata al processo fornitore padre.
    Pensate sia l'approccio giusto?

    E ora veniamo al problema vero e prorpio.
    Sto riscrivendo tutto il programma causa perdita di dati nell'Hard-disk ma quello che avevo realizzato non funzionava. Mi dava errori a manetta al momento della comunicazione.
    Cercando su internet non sono riuscito a trovare spiegazione esaustive riguardo la comunicazione di processi tramite socket.
    Avete idee o suggerimenti?
    Qualcuno ha realizzato qualche programma simile da potermi mostrare per avere le idee più chiare?

    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Io userei le pipe al posto dei sockets sn più performanti.
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    ci avevo già pensato ma non ho la più pallida idea di come si usino e/o di come dovrei comportarmi.
    da una prima letta credo che dovrei usare una named pipe poichè i 2 processi padre sono separati e non hanno modo di conoscere i descrittori degli altri.
    così a primo impatto direi:

    -il PRODUTTORE crea i processi figli che consumano
    -questi terminate le materie creano una pipe e contattato la pipe del fornitore passandogli l'identificativo della pipe
    -il FORNITORE crea un processo figlio al quale passa l'identificatore della pipe produttore, il quale a sua volta crea una pipe e risponde con il proprio identificatore
    -do il via alla comunicazione

    è sbagliato questo mio ragionamento/procedimento?

    Come faccio a fare tutto ciò?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.