You've already forked lidgren-network-gen3
mirror of
https://github.com/lidgren/lidgren-network-gen3.git
synced 2026-05-14 06:06:30 +09:00
ManySample added
This commit is contained in:
81
Samples/LibraryTestSamples/ManySample/ManyServer/Program.cs
Normal file
81
Samples/LibraryTestSamples/ManySample/ManyServer/Program.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using Lidgren.Network;
|
||||
using SamplesCommon;
|
||||
|
||||
namespace ManyServer
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
public static Form1 MainForm;
|
||||
public static NetServer Server;
|
||||
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
MainForm = new Form1();
|
||||
|
||||
NetPeerConfiguration config = new NetPeerConfiguration("many");
|
||||
config.Port = 14242;
|
||||
#if DEBUG
|
||||
config.SimulatedLoss = 0.02f;
|
||||
#else
|
||||
// throw new Exception("Sample not relevant in RELEASE; statistics needed to make sense!");
|
||||
#endif
|
||||
config.MaximumConnections = 64;
|
||||
|
||||
Server = new NetServer(config);
|
||||
Server.Start();
|
||||
|
||||
var swin = new NetPeerSettingsWindow("Server settings", Program.Server);
|
||||
swin.Show();
|
||||
|
||||
Application.Idle += new EventHandler(AppLoop);
|
||||
Application.Run(MainForm);
|
||||
}
|
||||
|
||||
static void AppLoop(object sender, EventArgs e)
|
||||
{
|
||||
NetIncomingMessage inc;
|
||||
|
||||
while (NativeMethods.AppStillIdle)
|
||||
{
|
||||
// read any pending messages
|
||||
while ((inc = Server.ReadMessage()) != null)
|
||||
{
|
||||
switch (inc.MessageType)
|
||||
{
|
||||
case NetIncomingMessageType.DebugMessage:
|
||||
case NetIncomingMessageType.VerboseDebugMessage:
|
||||
case NetIncomingMessageType.WarningMessage:
|
||||
case NetIncomingMessageType.ErrorMessage:
|
||||
// just print any message
|
||||
string str = inc.ReadString();
|
||||
NativeMethods.AppendText(MainForm.richTextBox1, str);
|
||||
break;
|
||||
case NetIncomingMessageType.StatusChanged:
|
||||
NetConnectionStatus status = (NetConnectionStatus)inc.ReadByte();
|
||||
string reason = inc.ReadString();
|
||||
NativeMethods.AppendText(MainForm.richTextBox1, NetUtility.ToHexString(inc.SenderConnection.RemoteUniqueIdentifier) + ": " + reason);
|
||||
MainForm.Text = Server.ConnectionsCount + " connections";
|
||||
break;
|
||||
case NetIncomingMessageType.Data:
|
||||
string dstr = "Data from " + NetUtility.ToHexString(inc.SenderConnection.RemoteUniqueIdentifier) + ": " + inc.ReadString();
|
||||
//NativeMethods.AppendText(MainForm.richTextBox1, dstr);
|
||||
|
||||
NetOutgoingMessage outMsg = Server.CreateMessage();
|
||||
outMsg.Write(dstr);
|
||||
Server.SendMessage(outMsg, Server.Connections, NetDeliveryMethod.ReliableOrdered, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user