【解決方法】サーバーとクライアントの USB デバイス間の通信は可能ですか?

プログラミングQA


インターネット経由でクライアント システムに接続された USB デバイスと通信したいのですが、
クライアント側でデバイスが接続されているポートに接続し、自分側で関数の実行を呼び出す必要があります。
そのため、USB デバイスが接続されている場合、クライアントにコードを持たずにその USB デバイスと通信する必要があります。
USB デバイスのコードはメーカーから提供されていますが (私はライブラリを使用しているだけです)、機密性のためにクライアント マシンに常駐させることはできません。

私が試したこと:

C#
public void ConnectRemoteDevice()
{
    SerialPort mySerialPort = new SerialPort("COM10");
    mySerialPort.BaudRate = 9600;
    mySerialPort.ErrorReceived += DataReceivedHandler;
    mySerialPort.Parity = Parity.None;
    mySerialPort.StopBits = StopBits.One;
    mySerialPort.DataBits = 8;
    mySerialPort.Handshake = Handshake.None;
    mySerialPort.DataReceived += DataReceivedHandler;
    mySerialPort.Open();
    mySerialPort.ReadExisting();
    mySerialPort.Close();
}

private void DataReceivedHandler(object sender, SerialErrorReceivedEventArgs e)
{
    SerialPort sp = (SerialPort)sender;
    string indata = sp.ReadExisting();
    Debug.Print("Data Received:");
    Debug.Print(indata);
    GetMeasure();
}
public string GetMeasure()
{
    //the code to trigger the USB device and get the data from it
}

解決策 1

USB デバイスにアクセスするサービスが必要ですか? もちろん、これは不可能です。

解決策 2

原則として、ユーザーが協力しない場合、リモート サーバーは PC にアクセスできません。
連携はHDD共有でもプリンター共有でも構いませんが、資格情報が必要です。
協力は、クライアントがサーバーからWebアプリを開くことであり、camへのアクセスを開きますが、クライアントが許可した場合に限ります。
カムを Web アプリとリモート サーバーに公開するには、特別なドライバーが必要で、USB デバイスにも同じ種類のドライバーが必要です。

引用:

USB デバイスのコードはメーカーから提供されていますが (私はライブラリを使用しているだけです)、機密性のためにクライアント マシンに常駐させることはできません。

USB デバイスのドライバーは、何があってもクライアント PC に存在する必要があります。
クライアントが特定のソフトウェアをインストールしてデバイスを外部に公開しない場合、リモート サーバーはデバイスにアクセスできません。

コメント

タイトルとURLをコピーしました