コード例 #1
0
 private void OnUnknownPhraseReceived(NetworkPhrase phrase)
 {
     if (this.UnknownPhraseReceived != null)
     {
         this.UnknownPhraseReceived(this, new PhraseEventArgs(phrase, this.reader));
     }
 }
コード例 #2
0
 void IPhraseSender.Send(NetworkPhrase phrase, PhraseSender sender)
 {
     foreach (var client in this.Clients)
     {
         client.Network.Send(phrase, sender);
     }
 }
コード例 #3
0
ファイル: Player.cs プロジェクト: MasterQ32/BlocksWorld
 void IPhraseSender.Send(NetworkPhrase phrase, PhraseSender sender)
 {
     foreach (var client in this.server.Clients)
     {
         if (client == this)
         {
             continue;
         }
         client.network.Send(phrase, sender);
     }
 }
コード例 #4
0
ファイル: Network.cs プロジェクト: MasterQ32/BlocksWorld
 public PhraseHandler this[NetworkPhrase phrase]
 {
     get
     {
         if (this.dispatcher.ContainsKey(phrase))
             return this.dispatcher[phrase];
         else
             return null;
     }
     set
     {
         this.dispatcher[phrase] = value;
     }
 }
コード例 #5
0
 public void Send(NetworkPhrase phrase, PhraseSender sender)
 {
     lock (this.writer)
     {
         try
         {
             this.writer.Write((int)phrase);
             this.writer.Flush();
             sender(this.writer);
         }
         catch (IOException ex) when(ex.HResult == -2146232800)  // Connection closed
         {
             // just ignore the exception
         }
     }
 }
コード例 #6
0
 public PhraseHandler this[NetworkPhrase phrase]
 {
     get
     {
         if (this.dispatcher.ContainsKey(phrase))
         {
             return(this.dispatcher[phrase]);
         }
         else
         {
             return(null);
         }
     }
     set
     {
         this.dispatcher[phrase] = value;
     }
 }
コード例 #7
0
 public void Dispatch()
 {
     if (this.reader == null)
     {
         return;
     }
     while (this.client.Available > 0)
     {
         NetworkPhrase phrase = (NetworkPhrase)reader.ReadInt32();
         if (this.dispatcher.ContainsKey(phrase))
         {
             this.dispatcher[phrase](this.reader);
         }
         else
         {
             System.Diagnostics.Trace.WriteLine("Unknown phrase: " + phrase.ToString(), "Network.Dispatch");
             this.OnUnknownPhraseReceived(phrase);
         }
     }
 }
コード例 #8
0
 public PhraseEventArgs(NetworkPhrase phrase, BinaryReader reader)
 {
     this.Phrase = phrase;
     this.Reader = reader;
 }
コード例 #9
0
 public PhraseEventArgs(NetworkPhrase phrase, BinaryReader reader)
 {
     this.Phrase = phrase;
     this.Reader = reader;
 }
コード例 #10
0
ファイル: Network.cs プロジェクト: MasterQ32/BlocksWorld
 private void OnUnknownPhraseReceived(NetworkPhrase phrase)
 {
     if (this.UnknownPhraseReceived != null)
         this.UnknownPhraseReceived(this, new PhraseEventArgs(phrase, this.reader));
 }
コード例 #11
0
ファイル: Network.cs プロジェクト: MasterQ32/BlocksWorld
 public void Send(NetworkPhrase phrase, PhraseSender sender)
 {
     lock (this.writer)
     {
         try
         {
             this.writer.Write((int)phrase);
             this.writer.Flush();
             sender(this.writer);
         }
         catch (IOException ex) when (ex.HResult == -2146232800) // Connection closed
         {
             // just ignore the exception
         }
     }
 }
コード例 #12
0
ファイル: Server.cs プロジェクト: MasterQ32/BlocksWorld
		void IPhraseSender.Send(NetworkPhrase phrase, PhraseSender sender)
		{
			foreach (var client in this.Clients)
			{
				client.Network.Send(phrase, sender);
			}
		}