You've already forked lidgren-network-gen3
mirror of
https://github.com/lidgren/lidgren-network-gen3.git
synced 2026-05-16 07:06:30 +09:00
ManySample added
This commit is contained in:
88
Samples/LibraryTestSamples/ManySample/ManyClients/Client.cs
Normal file
88
Samples/LibraryTestSamples/ManySample/ManyClients/Client.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user