我目前正在开发一个需要向实时进程发送和接收命令的 C# 套接字服务器。客户端是安卓设备。目前实时要求是“软”的,但将来可能会出现更严格的时序要求。假设将来可能会向可能存在危险的起重机发送命令。
服务器正在运行,并且看起来非常适合我当前的同步套接字服务器设计。我有单独的线程来接收和发送数据。我想知道是否有任何理由尝试异步服务器套接字方法?它能否提供更高的稳定性和/或更快的性能?
最佳答案
我将掩盖实时的定义,并说异步套接字不会使请求过程的主体更快,但会增加并发性(您可以在任何时候接受的请求数)。如果所有处理器都忙于处理某事,您将不会获得任何 yield 。这只会让您在处理器等待套接字接收数据的情况下获得 yield 。
关于实时的注意事项,如果您的实时要求类似于保证在 x 时间内响应,那么 C# 和 .NET 不会为您提供此类保证。然而,这取决于您当前和 future 对“软”的定义。您可能碰巧获得良好的响应时间,但不要将其与真正的实时系统混淆。
关于c# - 用于实时应用程序的异步与同步套接字服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7079741/