我正在考虑将同步功能添加到我的一个 C# 应用程序中。目的是其中一个同步选项允许一个版本的应用程序通过 USB 电缆同步到另一个版本的应用程序。
该应用程序是跨平台的,目前使用 Mono 在 Windows 和 Mac 上实现,但最终也将移植到 iOS 和 Android。
我要做的就是通过 USB 电缆发送和接收数据。
这听起来像是可行的吗?
我正在考虑将同步功能添加到我的一个 C# 应用程序中。目的是其中一个同步选项允许一个版本的应用程序通过 USB 电缆同步到另一个版本的应用程序。
该应用程序是跨平台的,目前使用 Mono 在 Windows 和 Mac 上实现,但最终也将移植到 iOS 和 Android。
我要做的就是通过 USB 电缆发送和接收数据。
这听起来像是可行的吗?
可行的?当然。这只是一个串行数据传输。您必须处理端口的打开和关闭以及数据的发送/接收,但这非常简单。
public void SendDataOverSerial(string data) {
try {
SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
port.Open();
port.Write(data);
}
finally {
port.Close();
}
}
显然,您需要在管道的另一端接收数据并执行它应该对它执行的任何操作。
这是一个很老的问题,但我最近写了一篇博客文章来描述如何实现这一点。简单地使用 SharpUSBLib 之类的东西是行不通的,因为您的 iOS 应用程序无法直接访问 USB 端口。
http://thecodewash.blogspot.com/2017/05/communicating-with-your-ios-app-over.html
要回答您的问题(所以这个答案不仅仅是一个链接),是的,使用通常作为 iTunes 的一部分安装的 USB 多路复用守护程序 (usbmuxd) 程序绝对可以实现这一点。该程序可以通过 USB 电缆创建与您的 iOS 设备的套接字连接,并允许您像使用任何其他套接字一样通过该套接字连接进行通信。该链接更详细。
希望这可以帮助!