首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用LiteNetLib将数据从客户端发送到服务器

如何使用LiteNetLib将数据从客户端发送到服务器
EN

Game Development用户
提问于 2023-01-09 18:31:15
回答 1查看 123关注 0票数 0

我从来自这里的示例客户机和服务器开始,并修改了客户机以将响应发送回服务器.从来没有到过。我做错了什么?我该怎么做?

服务器:

代码语言:javascript
运行
复制
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();

客户端:

代码语言:javascript
运行
复制
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();
EN

回答 1

Game Development用户

发布于 2023-03-22 09:32:26

您可以使用client.SendUnconnectedMessage(packet,peer.EndPoint)向修复端点发送消息--在您的示例中,端点是服务器。

票数 1
EN
页面原文内容由Game Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://gamedev.stackexchange.com/questions/204030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档