C#可以用管道传输吗?

我试图使用TCP和简单的文本命令控制网络上的程序(我最终可能会切换到二进制数据)。

但是,我想知道是否有办法对程序发送的数据进行编码并通过网络发送,然后对其进行解码并将其提供给收件人程序? 我目前的代码如下,但我试图找到一种更好的方法,而不是为ASCOM中的每个接口实现它。 显然,我还必须编写服务器端代码来实际执行请求的操作。 (仅供参考,这个是较小的一个。)

我相信它在通信中使用COM 。 因此,如果COM数据来自外部(调用方法,设置属性等),是否应该有一种方法来捕获该数据,将其通过网络传输,然后将其提供给另一台计算机上的收件人?

class SwitchConverter : ASCOM.Interface.ISwitch { private Client client = new Client(); private string query(string query){ return client.query(query); } private void send(string command) { client.send(command); } public bool Connected { get { return bool.Parse(query("SWITCHGETCONN")); } set { send("SWITCHSETCONN:" + value); } } public string Description { get { return query("SWITCHGETDESC"); } } public string DriverInfo { get { return query("SWITCHGETDRVI"); } } public string DriverVersion { get { return query("SWITCHGETDRVV"); } } public bool GetSwitch(short ID) { return bool.Parse(query("SWITCHGETSTAT:" + ID)); } public string GetSwitchName(short ID) { return query("SWITCHGETNAME:" + ID); } public short InterfaceVersion { get { return short.Parse(query("SWITCHGETINTV")); } } public short MaxSwitch { get { return short.Parse(query("SWITCHGETMAXS")); } } public string Name { get { return query("SWITCHGETNAME"); } } public void SetSwitch(short ID, bool State) { send("SWITCHSETSTAT:" + ID + "-" + State); } public void SetSwitchName(short ID, string Name) { send("SWITCHSETNAME:" + ID + "-" + Name); } public void SetupDialog() { throw new NotImplementedException(); } } 

顺便说一句,发送和查询是在另一个进行所有通信的类中。 非常简单。 您可以在Ascom-Standards网站上找到有关ASCOM接口的更多信息: http : //ascom-standards.org/

PS .NET Remoting怎么样?