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