WinForm和UWP如何进行双向通信

3

WinForm和UWP如何进行双向通信,我使用了MQTT,缺点是当发送的数据量较大时,会有非常严重的延迟,我还尝试了套接字模式,但是WinForm无法连接到UWP,哪位朋友可以帮帮我,谢谢!

WinForm和UWP之间的通信可以采用MQTT方式实现,但是如果发送的数据量较大,会导致严重的延迟问题。同时,也可以尝试使用套接字模式,但是需要注意的是WinForm无法直接连接到UWP。希望有朋友能够提供帮助,谢谢!


我们都假设这是一个UWP+WinForms应用程序,而不是一个在一台机器上运行的WinForms应用程序和另一个UWP应用程序,对吗? - Malachi
1
WinForm和UWP是在同一台计算机上运行的两个独立应用程序。它们需要相互通信并传输数据。 - Values
使用ASP.NET不符合我们的要求。我们无法在客户计算机上安装或操作IIS。 - Values
ASP.NET Core远比较轻,完全独立于IIS运行。 - Malachi
1
非常感谢您的回复。我们需要重新考虑我们的实现。 - Values
显示剩余4条评论
2个回答

0

UWP和WinForms应该能够通过标准的C#构造在幕后进行通信。我从未使用过UWP,但是在WPF中,WPF和WinForms或多或少处于同一进程空间中。没有必要使用花哨的进程间通信。

话虽如此,也许您可以给我们一个传递的数据的想法?

编辑:经过更多信息的了解,我现在明白您正在谈论两个不同的应用程序。过去,WCF是这样做的首选机制,但我认为现在有更好的选择。我将答案交给更有知识的人。


1
感谢您的回复。然而,在UWP中,许多类、属性和方法都无法使用。例如,Socket类中的Accept和Receive未定义。WinForm发送到UWP的数据是JSON、图片数据。 - Values
你感兴趣的是传输+序列化组合。也许像这个https://johnkoerner.com/csharp/IPC-in-net-core-using-protobuf/,或者SignalR(它是Web API的一个高级远亲) - Malachi
UWP不支持NamedPipeServerStream。 - Values
啊,是啊,我忘记了这一点。你得听从 PCL 的安排了呢... - Malachi
非常感谢您的回复。两个独立的UWP应用程序在同一台计算机上能否通过套接字进行通信? - Values

0

文档注释部分可以得知,两个独立的UWP应用程序在同一台计算机上无法通过套接字进行通信。

由于网络隔离的影响,Windows不允许在同一台计算机上运行的两个UWP应用程序之间建立套接字连接(Sockets或WinSock);无论是通过本地回环地址(127.0.0.0)还是显式指定本地IP地址。有关UWP应用程序如何相互通信的更多信息,请参见应用程序间通信

此外,您还可以将应用程序服务集成到您的UWP应用程序中,以允许在应用程序之间共享数据和功能,请参见主题使用应用程序服务和扩展

最后,您还可以参考这个类似的线程:

UWP和非UWP应用程序之间的通信


非常感谢您给我们带来了全新的想法。我们会认真尝试这种方法。谢谢。 - Values

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接