Я награбленных последнее издание Lidgren из https://code.google.com/p/lidgren-network-gen3/Lidgren не отправка/прием сообщений данных
Я рассмотрел много учебников, но никто не похоже на работу. Я полагаю, что я должен что-то пропускать в своем коде.
using Lidgren.Network;
using System;
namespace LGServer
{
class Program
{
static void Main(string[] args)
{
NetPeerConfiguration config = new NetPeerConfiguration("test");
config.Port = 5432;
config.LocalAddress = new System.Net.IPAddress(new byte[] { 127, 0, 0, 1 });
config.MaximumConnections = 1000;
NetServer server = new NetServer(config);
server.Start();
NetIncomingMessage msg = null;
while (true)
{
while ((msg = server.ReadMessage()) != null)
{
Console.WriteLine(msg.MessageType.ToString());
if (msg.MessageType == NetIncomingMessageType.Data)
{
Console.WriteLine(msg.ReadInt16());
Console.WriteLine(msg.ReadString());
}
}
}
}
}
}
//// My client code:
using Lidgren.Network;
using System;
namespace LGClient
{
class Program
{
static void Main(string[] args)
{
NetPeerConfiguration config = new NetPeerConfiguration("test");
NetClient client = new NetClient(config);
client.Start();
client.Connect("127.0.0.1", 5432);
NetOutgoingMessage msg = client.CreateMessage();
msg.Write((Int16)3346);
msg.Write("Test Message 1 whooahaa");
client.SendMessage(msg, NetDeliveryMethod.ReliableUnordered);
client.FlushSendQueue();
}
}
}
Сервер получает изменение состояния каждый раз, когда я соединяюсь (? Изменения состояния от запуска до запуска?) Тогда я получаю сообщение отладки с временем, которое требуется от клиента/сервера
Но я никогда получить сообщение данных. этот код работает на ком-нибудь машине elses? есть ли что-то очевидное, что мне не хватает?
Спасибо.
Я нашел проблему, но я не понимаю, почему это проблема. Просто добавив «Thread.Sleep (500);» сразу после подключения клиента (перед отправкой сообщения данных) он работает нормально. Я не вижу, как помогает задержка. Это, по сути, время, необходимое серверу lidgren для регистрации соединения для утверждения сообщений? –