1
0
mirror of https://github.com/lidgren/lidgren-network-gen3.git synced 2026-05-14 22:26:29 +09:00
Files
lidgren-network-gen3/Samples/LibraryTestSamples/ManySample/ManyClients/Client.cs
2010-11-03 10:39:14 +00:00

89 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Lidgren.Network;
namespace ManyClients
{
public partial class Client : Form
{
private const double c_sendFrequency = 1.0;
public NetClient Net;
private double m_lastSent;
public Client()
{
InitializeComponent();
NetPeerConfiguration config = new NetPeerConfiguration("many");
#if DEBUG
config.SimulatedLoss = 0.02f;
#endif
Net = new NetClient(config);
Net.Start();
Net.Connect("localhost", 14242);
}
protected override void OnClosed(EventArgs e)
{
Net.Shutdown("closed");
}
internal void Shutdown()
{
Net.Shutdown("bye");
}
internal void Heartbeat()
{
NetIncomingMessage inc;
while ((inc = Net.ReadMessage()) != null)
{
switch (inc.MessageType)
{
case NetIncomingMessageType.StatusChanged:
NetConnectionStatus status = (NetConnectionStatus)inc.ReadByte();
this.Text = status.ToString();
break;
case NetIncomingMessageType.ErrorMessage:
this.Text = inc.ReadString();
break;
}
}
// send message?
if (NetTime.Now > m_lastSent + c_sendFrequency)
{
var om = Net.CreateMessage();
om.Write("Hi!");
Net.SendMessage(om, NetDeliveryMethod.ReliableOrdered);
m_lastSent = NetTime.Now;
// also update title
#if DEBUG
this.Text = Net.Statistics.SentBytes + " bytes sent; " + Net.Statistics.ReceivedBytes + " bytes received";
#else
string str = Net.ServerConnection == null ? "No connection" : Net.ServerConnection.Status.ToString();
if (this.Text != str)
this.Text = str;
#endif
}
}
private void button1_Click(object sender, EventArgs e)
{
var om = Net.CreateMessage();
om.Write("Hi!");
Net.SendMessage(om, NetDeliveryMethod.ReliableOrdered);
}
}
}