Progettazione e Sviluppo di un Multiplayer Online Game su Reti Peer-to-Peer
Alma Mater Studiorum Universit`a degli Studi di Bologna Facolta` di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze di Internet Tesi di Laurea in Laboratorio di Programmazione Internet
Alma Mater Studiorum Universit`a degli Studi di Bologna
Facolta` di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Scienze di Internet
Tesi di Laurea in Laboratorio di Programmazione Internet
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
76 CAPITOLO 3. IMPLEMENTAZIONE<br />
gui<strong>to</strong> il comando, e quin<strong>di</strong> Link.Write(new HandShakeResponse( Node.GetNetID()<br />
).ToString() ) , che <strong>di</strong> fat<strong>to</strong> corrisponderà alla risposta<br />
che il Node invierà al Link per notificare la propria identità.<br />
• HandShakeResponse: analogamente a HandShakeBegin, viene prima<br />
chiama<strong>to</strong> Node.SetNew- IdentifierOfLink( ILink Link, string Parameters<br />
) (questa volta <strong>su</strong>ll’altro Nodo), e quin<strong>di</strong> Link.Write( new Hand-<br />
ShakeEnd( Node.GetNetID() ) ) per notificare a Link l’avvenuta ricezione<br />
del comando HandShakeResponse. Inoltre viene flagga<strong>to</strong> a “true”<br />
l’attribu<strong>to</strong> “Active” relativo alla connessione tra il Node e l’EndPoint<br />
<strong>di</strong> Link.<br />
• HandShakeEnd: analogamente ad HandShakeResponse, <strong>su</strong>ll’Exec() viene<br />
attivata la connessione tra il Node e l’EndPoint <strong>di</strong> Link.<br />
Tra gli sviluppi futuri è stata considerata la possibilità <strong>di</strong> implementare<br />
<strong>un</strong> sot<strong>to</strong>-stra<strong>to</strong> ulteriore de<strong>di</strong>ca<strong>to</strong> alla compressione / decompressione dei dati,<br />
da inserire o a livello del ToString() del NetCommand base, o a livello dei<br />
threads Read / Write della classe NetChannel, oppure <strong>di</strong>rettamente sot<strong>to</strong> il<br />
Layer NET.<br />
In Figura 3.6 è illustrata la struttura della stringa che viene generata <strong>di</strong><br />
default dall’override del ToString().<br />
Figura 3.6: Struttura della stringa dei messaggi implementati dai Commands