gpt4 book ai didi

.NET 双向套接字实时通信协议(protocol)

转载 作者:行者123 更新时间:2023-12-01 02:54:03 24 4
gpt4 key购买 nike

我需要维护服务器和多个客户端之间的连接,以便客户端可以发送命令,服务器触发事件​​。服务器基本上是一个音乐播放器,客户端发送诸如“Play()”、“Pause()”、“GetPlaylists()”等命令。服务器端需要能够告诉客户端诸如“SongEnded”或“PlayerPaused”。此外,还需要可以来回发送一些数据(如当前歌曲、专辑图片、播放列表等)。我当然可以自己创建一个套接字并创建自己的协议(protocol)来处理上述所有场景,但很可能有人已经在我之前完成了这项工作,所以我真正想要的是一个实时框架—— .NET 的服务器和客户端之间的通信。例如,我查看了 xml-rpc,但不确定我应该如何处理“OnClientSend”。另外,如果我没记错的话,xml-rpc 被制作成类似于 REST 的。我也看过 wcf,但由于我没有使用它的经验,我不知道从哪里开始,以及如何在一个简单的控制台应用程序中托管服务器。

重要提示:客户端需要能够不是 .NET。
重要提示:这需要能够连接到 java (android)。
重要提示:主要平台是 Windows(服务器和客户端)和 Android(客户端)。
重要提示:不进行音频流式传输。但是,需要发送图像。

任何解决方案的想法将不胜感激。另外,如果您有一个好的框架的链接,或者关于如何使用 .NET 中已经存在的组件的描述,我会非常高兴。

[编辑]
问题是,当通过套接字发送数据时,不能保证(根本!)您发送的包将同时被服务器读取。我可能会再次发送 50、100、50 字节,但服务器可能会将其读取为 200 字节的 block ,或者先发送 100,然后再发送 100 等,这意味着我需要创建一个缓冲区,读取消息直到我确定(这个是问题)我收到了整条消息(仅此而已)。

最佳答案

ZeroMQ看起来很适合您的问题。似乎您自己已经实现了类似的东西。

  • 充当并发框架的 Supersocket 库。
  • 通过 inproc、IPC、TCP 和多播传送消息。
  • 以扇出、发布订阅、管道和请求-回复模式连接 N 对 N。
  • 对于集群产品和 super 计算来说足够快。
  • 用于可扩展多核消息传递应用程序的异步 I/O。
  • 庞大而活跃的开源社区。
  • 20 多种语言,包括 C、C++、Java、.NET、Python。
  • 大多数操作系统,包括 Linux、Windows、OS X。
  • LGPL 免费软件,由 iMatix Corporation 提供商业支持。
  • 关于.NET 双向套接字实时通信协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3661662/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com