我已經抓住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();
}
}
}
的服務器獲取狀態改變每次連接時間(?從運行到運行狀態的變化?) 然後我得到它需要客戶端的時間調試消息/服務器
但我從來沒有獲取數據信息。此代碼是否可以在別人的機器上工作?有什麼明顯的我失蹤?
謝謝。
我發現了這個問題,但我不明白爲什麼這是一個問題。通過簡單地添加「Thread.Sleep(500);」在客戶端連接之後(在發送數據消息之前)它正常工作。我不明白延遲是如何起作用的。這實際上是lidgren服務器註冊連接以批准消息所用的時間嗎? –