You've already forked lidgren-network-gen3
mirror of
https://github.com/lidgren/lidgren-network-gen3.git
synced 2026-05-14 22:26:29 +09:00
89 lines
2.0 KiB
C#
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("Manual hi!");
|
|
|
|
Net.SendMessage(om, NetDeliveryMethod.ReliableOrdered);
|
|
}
|
|
}
|
|
}
|