Alhazred
23-07-2007, 07:53
Sto scrivendo un programma che dovrebbe simulare la posta elettronica in locale su un pc. Sono all'inizio e per ora sto cercando di far comunicare client e server e fargli fare le operazioni base.
Per la scrittura di una nuova mail non ho problemi, il client invia il messaggio su mailslot al server e questo lo salva in un file.
Sto invece avendo problemi con la lettura delle mail. Il client inoltra la richiesta di lettura, il server la riceve correttamente, legge poi correttamente il file contenente la mail e la salva in un messaggio da inviare tramite mailslot al client, il problema nasce qui, ho sempre un errore di invio tramite mailslot.
Mettendo stampe su console per vedere cosa funziona e cosa no è saltato fuori che la WriteFile della funzione LeggiDaFile del processo server non scrive nulla nel mailslot, la variabile numWritten che dovrebbe contenere il numero di bytes scritti vale sempre 0.
- Codice Server (http://www.lacasa.altervista.org/software/Server.c)
- Codice Client (http://www.lacasa.altervista.org/software/Client.c)
Perché funzioni deve esserci un file "input.txt" nella stessa cartella da dove viene fatto partire il processo server con 4 righe che contengono rispettivamente mittente, destinatario, oggetto, testo, quindi una cosa del tipo:
Pippo
Topolino
oggetto della mail
testo di prova
Riuscite a capire dov'è il problema?
P.S. per vedere/scaricare i codici è necessario il copia-incolla dell'indirizzo sul browser.
Per la scrittura di una nuova mail non ho problemi, il client invia il messaggio su mailslot al server e questo lo salva in un file.
Sto invece avendo problemi con la lettura delle mail. Il client inoltra la richiesta di lettura, il server la riceve correttamente, legge poi correttamente il file contenente la mail e la salva in un messaggio da inviare tramite mailslot al client, il problema nasce qui, ho sempre un errore di invio tramite mailslot.
Mettendo stampe su console per vedere cosa funziona e cosa no è saltato fuori che la WriteFile della funzione LeggiDaFile del processo server non scrive nulla nel mailslot, la variabile numWritten che dovrebbe contenere il numero di bytes scritti vale sempre 0.
- Codice Server (http://www.lacasa.altervista.org/software/Server.c)
- Codice Client (http://www.lacasa.altervista.org/software/Client.c)
Perché funzioni deve esserci un file "input.txt" nella stessa cartella da dove viene fatto partire il processo server con 4 righe che contengono rispettivamente mittente, destinatario, oggetto, testo, quindi una cosa del tipo:
Pippo
Topolino
oggetto della mail
testo di prova
Riuscite a capire dov'è il problema?
P.S. per vedere/scaricare i codici è necessario il copia-incolla dell'indirizzo sul browser.