PDA

Visualizza versione completa : [C] Applicazione client-server


Alhazred
05-07-2007, 18.02.10
Sapete dove posso trovare un semplice esempio di applicazione client-server in C che usi mailslot?
Sto cercando in giro, ma non trovo nulla, solo su msdn online (ovviamente), ma fa uso di nuovi header come strsafe.h e a me serve che funzioni anche con i vecchi, ho provato a convertire il codice per farlo funzionare, ma non ci riesco.
Mi va bene un esempio stupidissimo, tipo il server si mette in ascolto, parte il client che mi chiede di inserire una stringa, la passa al server e il server scrive in output il mio messaggio.

Alhazred
21-07-2007, 17.26.21
Continuo qui con le richieste di aiuto.
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, non riesco a venirne a capo... complice forse anche il caldo :(
Vedete l'errore?

- 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

per scaricare i codici potrebbe essere necessario il taglia-incolla dell'indirizzo sul browser.

Alhazred
22-07-2007, 10.41.03
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 byte scritti vale sempre 0.
Capite il perché?