C#可以用管道传输吗?

时间:2012-02-27 21:32:45

标签: c# network-programming

我正在尝试使用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/

P.S。那么.NET Remoting呢?

0 个答案:

没有答案