Implementazione asincrona client-server

1

La missione: implementare un programma che ascolterà più richieste client in modo asincrono (su TCP) e trasferirle su un server (anche su TCP) a cui è consentita una sola connessione. Il programma riceverà anche le risposte dal server e trasferirà ogni risposta al cliente pertinente.

La domanda: qual è il modo migliore per implementarlo usando c #?

Dalla lettura su Internet ho capito che posso usare un socket asincrono e gestire tutto in base agli eventi. Non è necessario utilizzare un pool di thread. Sono corretto?

Questo è l'esempio migliore che ho trovato: link

Ma da esso ho solo capito come ricevere le richieste dei client e consegnarle al server. Ancora non capisco come ricevere una risposta dal server e consegnarla a un client pertinente utilizzando eventi di socket asincrono?

Apprezzerà le tue intuizioni e il tuo aiuto.

PS: sono su una rete chiusa e non ho VS sul computer internet, ecco perché non posso incollare il mio codice qui. Ma attualmente il mio codice sembra molto simile nell'esempio sopra ( link )

    
posta nlobak 15.05.2016 - 09:58
fonte

1 risposta

0

ignorando i bit specifici della lingua, in generale il modo per farlo è ricordare quale client ha fatto la richiesta al server. Ora puoi racchiudere la richiesta del client in un'altra struttura contenente un token (l'indirizzo del client funziona) in modo che tu possa capire dove inviare la risposta quando il server la restituisce, oppure puoi costruire una mappa o dei client su richieste del server e lavorare in altro modo quale client ha fatto la richiesta quando il server risponde (questo può essere più semplice a seconda del tipo di dati che si ricevono, ad esempio, si potrebbe timbrare un contatore su ogni messaggio per evitare duplicati).

    
risposta data 16.05.2016 - 09:37
fonte

Leggi altre domande sui tag