我从来自这里的示例客户机和服务器开始,并修改了客户机以将响应发送回服务器.从来没有到过。我做错了什么?我该怎么做?
服务器:
using LiteNetLib;
using LiteNetLib.Utils;
Console.WriteLine("=== Server ===");
EventBasedNetListener listener = new EventBasedNetListener();
NetManager server = new NetManager(listener);
server.Start(9050);
listener.ConnectionRequestEvent += request => {
if (server.ConnectedPeersCount < 10 /* max connections */)
request.AcceptIfKey("SomeConnectionKey");
else
request.Reject();
};
listener.PeerConnectedEvent += peer => {
Console.WriteLine("We got connection: {0}", peer.EndPoint); // Show peer ip
NetDataWriter writer = new NetDataWriter(); // Create writer class
writer.Put("Hello client!"); // Put some string
peer.Send(writer, DeliveryMethod.ReliableOrdered); // Send with reliability
};
listener.NetworkReceiveEvent += (fromPeer, dataReader, deliveryMethod) => {
Console.WriteLine("We got: {0}", dataReader.GetString(100 /* max length of string */));
dataReader.Recycle();
};
while (!Console.KeyAvailable) {
server.PollEvents();
Thread.Sleep(15);
}
server.Stop();
客户端:
using LiteNetLib;
using LiteNetLib.Utils;
Console.WriteLine("=== Client ===");
EventBasedNetListener listener = new EventBasedNetListener();
NetManager client = new NetManager(listener);
client.Start();
var serverPeer = client.Connect("localhost", 9050, "SomeConnectionKey");
listener.NetworkReceiveEvent += (fromPeer, dataReader, deliveryMethod) => {
Console.WriteLine("We got: {0}", dataReader.GetString(100 /* max length of string */));
dataReader.Recycle();
};
NetDataWriter writer = new NetDataWriter(); // Create writer class
writer.Put("Hello server!"); // Put some string
serverPeer.Send(writer, DeliveryMethod.ReliableOrdered); // Send with reliability
while (!Console.KeyAvailable) {
client.PollEvents();
Thread.Sleep(15);
}
client.Stop();
发布于 2023-03-22 09:32:26
您可以使用client.SendUnconnectedMessage(packet,peer.EndPoint)
向修复端点发送消息--在您的示例中,端点是服务器。
https://gamedev.stackexchange.com/questions/204030
复制相似问题