【发布时间】:2013-10-09 00:56:10
【问题描述】:
This question 询问如何交流查询和接收响应。我也想发送行动和信息请求。其中一些请求将带参数,大多数不会。在回复中,几乎所有回复都会发回“OK”,但其他人会向我发送信息。链路的两端除了这个命令协议外,彼此一无所知。 OP 得到了答案,告诉他如何包装他的代码。
我已经被这样的回复淹没了,告诉我要使用什么技术,如何包装代码等等;并且由于我正在使用最新工具进行全新的开发,因此我发现并接受了我想使用 TAP,因为 Jon Skeet 回答了该问题的 OP。我想我现在知道如何包装我的代码了。不过,我的问题不是使用什么技术,而不是如何使用 async/await。
但是这段代码是什么样子的呢?使用什么方法/参数等来发送查询并获得答案?找不到对方的两端如何建立通信?如何包含参数?等等。
我想使用策略模式,以便在一种情况下,两端是表单,命令是按钮按下的结果,文本框的参数。这种形式存在。第二种策略,尚未编写,是让两端在计算机之间通过网络进行通信。服务器将是一个 Windows 服务,命令模块是一个发送命令以响应生产线自动化的表单。
说“使用 RPC”或“使用套接字”对我没有帮助。什么是 RPC?以及套接字代码与发送命令的部分有何关系……代码是什么样的?
说我有:
public async void SendCommandAsync(Command c, Parameters p)
{
string response;
await response = SendAsync(c, p);
}
在调用此函数之前需要准备什么? SendAsync() 是什么?它如何与远程侦听器通信?两种策略之间有什么并行性,其中一种通过网络进行通信,使用 SOAP 或 HTTP,另一种在同一台计算机上,一种形式到另一种形式?
感谢您容忍我的无知。
【问题讨论】:
-
有关 TCP、序列化、SOAP 等的教程对您有帮助吗?如果是,这对 Stack Overflow 来说不是一个好问题。阅读综合教程会更好地为您服务。
-
我想他们不会。我过去曾编写过这种代码,但当前的开发模型要简单得多,但我并不熟悉。我认为其他人可能也是如此,他们可以使用一个简单的例子。给定一个基础,我可以从那里开始。在你提到的那些东西中,你会使用哪一个? (我将编辑我的问题以更清楚一点......)
-
您的问题能否概括为“如何通过网络向不同的进程和/或机器发送请求并接收回复?”?您是否正在寻找有关如何务实地实现这一目标的指导?
-
在寻找如何实现我的目标时,无论我的搜索词是什么,我发现如何做到这一点的内容很少,而使用的模式却很多。所以我接受了这个模式。但鉴于此,AFAIK 的方法与以往不同。我正在寻找:“鉴于 TAP 模式,等待的方法有什么作用?”如果他们和以前没有什么不同,那很好。但是直到最近——我读过的关于 async/await 的博客都没有基于发布的编译器,只有 beta 代码——他们没有提到它们是否是可等待的,因此我不清楚;大概也不对其他人。
标签: .net multithreading events blocking c#-5.0