非常简单的客户端/服务器消息网络c#.. NET和Xamarin/Mono)

本文关键字:NET Xamarin Mono 消息 简单 客户端 服务器 非常 网络 | 更新日期: 2023-09-27 18:09:58

我想写一个简单的应用程序发送文本消息之间的服务器(Windows)和客户端(Xamarin应用程序运行在android上),这将远程控制音乐(由服务器播放)与基本的文本命令(如"暂停","跳过","播放"…)。

我想过的设置是这样的:当我启动android应用程序时,它试图连接到服务器(它们使用LAN/WiFi在同一个本地网络中,所以我只使用我的本地IP)。然后,随着连接的建立,双方都可以向另一方发送消息(客户端->服务器:播放这首歌等,服务器->客户端:歌曲完成,歌曲未找到等)。当然,这应该以线程或异步的方式完成,这样两个应用程序就不会阻塞它们的UI。服务器将在后台运行并等待下一条消息,这将触发一个事件来处理所请求的操作。

我已经搜索了如何以初学者友好的方式做到这一点,但还没有找到很多我可以使用的。我对异步/线程编程只有基本的了解,对网络(在。net中)不够了解。我找到的每个解决方案都不是为了连接保持打开,而是"读取流,发送答案,关闭连接"(这不是我想要的)或者太复杂了。

我知道有无数的教程可用,但我根本无法弥补如何使用它们为我的场景。示例代码或易于理解的解释如何完成诸如以非阻塞方式保持连接打开,以及如何发送和接收完整的,自包含的消息,因为我不能完全理解这些(如果我只是读取固定大小的字节,我怎么能确保得到确切的一条消息?)。

所以,我很感激每一个提示我在正确的方向上,比如,许多类中哪一个最适合使用这个(似乎有很多,没有概念,适合什么)。如果这个问题看起来很愚蠢,我很抱歉,但我在这方面绝对是初学者。

非常简单的客户端/服务器消息网络c#.. NET和Xamarin/Mono)

在做了更多的研究之后,我自己发现了这个问题。System.Net.Sockets.UdpClient工作得很好,更重要的是,它在我想要瞄准的两个平台上都可用和工作,所以我就用它吧。