目前,我使用WCF为我的项目进行网络连接。但是,我想切换到一些网络库,例如Lidgren Network。
由于它是WCF,它使用接口,可以发送&使用一种方法接收数据,Lidgren Network有点处于较低级别,您需要构建和发送数据包,这不是问题。
问题是,我没有任何想法,我只能通过一种方法发送和接收,就像使用WCF一样。
我们说我用WCF获得了一些客户端代码:
void SomeCode()
{
var status = wcfChannel.CheckUserId(id);
if (status)
{
// true
// do something
}
else
{
// false
// do something
}
}
使用lidgren网络将是:
void SomeCode()
{
var packet = new packet(...);
packet.Write(id);
var status = send2Server(packet);
if (status)
{
// true
// do something
}
else
{
// false
// do something
}
}
那么,' send2Server'应该以某种方式实施。由于它只能在循环中接收数据包(?),所以我没有任何想法。 好吧,一个 - 我可以在SomeCode的类中有一些变量,并且数据包接收上的客户端网络接收循环将改变SomeCode类中的这些变量。此外,还需要添加一些延迟,并让这些变量进一步使用。 但是,应该有更好的方法来实现它。
答案 0 :(得分:0)
好的,我刚注意到Lidgren Network支持同步:
// create, write data to packet and send it
var packet = new packet(...);
packet.Write(id);
server.send2Server(packet);
// this will block until a message arrives
server.MessageReceivedEvent.WaitOne();
// msg is now received
var msg = server.ReadMessage();
// process received packet below