将字符串从控制台应用程序发送到 Windows 窗体应用程序

Posted

技术标签:

【中文标题】将字符串从控制台应用程序发送到 Windows 窗体应用程序【英文标题】:Send a string from Console Application to WindowsForm application 【发布时间】:2014-01-19 12:44:00 【问题描述】:

我创建了一个 android 应用程序,它通过 wifi 将字符串发送到我计算机上的控制台服务器。基本上,当用户触摸 Android 应用程序上的按钮时,应用程序会向服务器发送一个“连接”字符串,再次按下它会发送一个“断开连接”字符串。收到字符串后,我需要将其从控制台服务器传递到在同一台机器上运行的 Windows 窗体。 这就是我卡住的地方,如何将字符串从服务器发送到 windowsform 应用程序? 我正在使用 C# 顺便说一句... 谢谢

【问题讨论】:

是什么阻止您使用与 Android 应用程序和控制台应用程序之间的连接相同的机制? 【参考方案1】:

你可以使用这个类NamedPipeServerStream

[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
 public sealed class NamedPipeServerStream : PipeStream

【讨论】:

【参考方案2】:

您需要与它“交流”;)。使用 WCF 或在 2 个 .net 应用程序之间创建您自己的 TCP/IP 套接字客户端/服务器应用程序。

【讨论】:

【参考方案3】:

按照 T McKeown 的建议,您可以创建一个 Socket Listener

该链接提供了一个完整的示例(客户端和服务器)。在您的情况下,客户端将是 android,这会有所不同。

【讨论】:

【参考方案4】:

有多种方法可以实现这一目标。您想要做的事情的技术术语是进程间通信 (IPC),有许多不同的方法可以做到这一点。

由于您在客户端和服务器上都使用 .NET,因此您的任务要容易得多:您可以使用 Windows Communication Foundation。 WCF 允许您轻松创建通过各种通道(包括 TCP/IP 和命名管道)进行通信的客户端/服务。

您可以在 CodeProject 上找到Small Sample Project WCF service。


其他方法包括套接字(TCP 甚至 UDP)、命名和匿名管道、共享网络文件夹上的文件、共享内存或消息队列。

【讨论】:

【参考方案5】:

另一种可能性是使用命名管道流,它也适用于内部网络。对于两个应用程序之间的通信,您可以使用您认为最好的方式。阅读 MSDN 上 named pipe streams 上的此文档。

【讨论】:

以上是关于将字符串从控制台应用程序发送到 Windows 窗体应用程序的主要内容,如果未能解决你的问题,请参考以下文章

写入在 Windows 下的 Java 应用程序中生成的 C++ 控制台应用程序

如何将短字符串从 Visual Basic 应用程序发送到 Delphi 应用程序?

无法将字符串从 python 发送到 arduino

将 Ctrl+C 事件发送到在 Windows 上使用 QProcess 启动的进程

如何通过 USB 将数据从 Windows 发送到嵌入式 Linux

提交时将对象列表从视图发送到控制器