Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ BroadcastThread()

static void Terraria.Netplay.BroadcastThread ( )
inlinestaticprivate

Definition at line 784 of file Netplay.cs.

785 {
787 new IPEndPoint(IPAddress.Any, 0);
788 BroadcastClient.EnableBroadcast = true;
789 new DateTime(0L);
790 long num = 0L;
791 byte[] array;
792 using (MemoryStream memoryStream = new MemoryStream())
793 {
794 using BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
795 int value = 1010;
796 binaryWriter.Write(value);
797 binaryWriter.Write(ListenPort);
798 binaryWriter.Write(Main.worldName);
799 string text = Dns.GetHostName();
800 if (text == "localhost")
801 {
803 }
804 binaryWriter.Write(text);
805 binaryWriter.Write((ushort)Main.maxTilesX);
806 binaryWriter.Write(Main.ActiveWorldFileData.HasCrimson);
807 binaryWriter.Write(Main.ActiveWorldFileData.GameMode);
808 binaryWriter.Write((byte)Main.maxNetPlayers);
809 num = memoryStream.Position;
810 binaryWriter.Write((byte)0);
811 binaryWriter.Write(Main.ActiveWorldFileData.IsHardMode);
812 binaryWriter.Flush();
813 array = memoryStream.ToArray();
814 }
815 while (true)
816 {
817 int num2 = 0;
818 for (int i = 0; i < 255; i++)
819 {
820 if (Main.player[i].active)
821 {
822 num2++;
823 }
824 }
825 array[(int)num] = (byte)num2;
826 try
827 {
828 BroadcastClient.Send(array, array.Length, new IPEndPoint(IPAddress.Broadcast, 8888));
829 }
830 catch
831 {
832 }
833 Thread.Sleep(1000);
834 }
835 }
static string MachineName
override long Position
virtual byte[] ToArray()
static string GetHostName()
Definition Dns.cs:16
static readonly IPAddress Broadcast
Definition IPAddress.cs:23
static readonly IPAddress Any
Definition IPAddress.cs:19
static void Sleep(int millisecondsTimeout)
Definition Thread.cs:658
static int ListenPort
Definition Netplay.cs:47
static UdpClient BroadcastClient
Definition Netplay.cs:67

References Terraria.Main.ActiveWorldFileData, System.Net.IPAddress.Any, System.array, System.Net.IPAddress.Broadcast, Terraria.Netplay.BroadcastClient, System.DateTime, System.Net.Dns.GetHostName(), System.L, Terraria.Netplay.ListenPort, System.Environment.MachineName, Terraria.Main.maxNetPlayers, Terraria.Main.maxTilesX, Terraria.Main.player, System.IO.MemoryStream.Position, System.Threading.Thread.Sleep(), System.text, System.IO.MemoryStream.ToArray(), System.value, and Terraria.Main.worldName.

Referenced by Terraria.Netplay.StartBroadCasting().