Domanda

Sto costruendo una semplice applicazione di chat lan udp in vb.net e mi chiedo come dovrei dividere i miei pacchetti. Ogni pacchetto inviato dovrebbe avere un ID, un nome utente e un indirizzo IP da cui proviene e forse anche una parte di comando per unirsi o lasciare come aggiornare la mia lista utenti e un messaggio di testo. Mi piacerebbe sapere qual è il modo più semplice per inserire tutto questo in un pacchetto semplice, quindi facilmente dividere e accedere a parti diverse da esso quando viene ricevuto. grazie.

Sto usando UDP poiché questo è solo in lan quindi sto trasmettendo a *.*.*.255

MODIFICA: Grazie per la tua risposta Jon, ma lo so già. Quello che voglio sapere è quale sarebbe il modo più semplice e potente per formattare i miei pacchetti in modo che includano un nome utente, un ID, un comando e un messaggio di testo, quindi l'utente che lo riceve decrittografa per mostrare solo il messaggio scritto da cui utente o se si tratta di un comando come join o uscire per mostrare il messaggio appropriato di partecipazione e aggiungere l'utente all'elenco, ad esempio.

È stato utile?

Soluzione

Probabilmente vorrei solo formattare il pacchetto in xml e quindi sul lato di ricezione utilizzare linq in xml per separarlo. Potresti anche usare JSON per il formato, ma potrebbe essere leggermente più difficile da analizzare.

Altri suggerimenti

Crea una classe appropriata con un metodo ToByteArray di istanza e un metodo FromByteArray () statico (per la serializzazione su un array di byte e l'analisi da un array di byte rispettivamente). Quindi utilizzare UdpClient.Send () per inviarlo e UdpClient. Ricevi () per riceverlo.

Potresti voler usare BinaryReader / BinaryWriter e / o BitConverter per aiutare con ToByteArray e < metodi code> FromByteArray . Puoi utilizzare un MemoryStream come flusso rapido in memoria per passare a BinaryReader / BinaryWriter .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top