2

For a project I'm doing I need to stream data from one windows computer to another without using the IP-network (including cross-linked ethernet cable, for instance).

The streaming application should be written in C#, although I can probably get away with a C# wrapper, if necessary.

I've considered USB link cables and Firewire, but so far I've failed to find any drivers for sending custom data via these.

Did someone try this before, or know which way to go? Any suggestion would be appreciated!

Edit The speed of the connection should preferably be close to fast Ethernet (100Mbps). For the mentioned cables this should be no problem (USB 2.0 is 480Mbps, Firewire800 is 800Mbps).

Vincent van der Weele
  • 12,927
  • 1
  • 33
  • 61
  • Good question, will be interesting to see the answer on it. – Maris Feb 21 '13 at 11:01
  • Long ago we used NULL-modem serial cables :) But seriously why you don't want to build ip connection with usb cable? I may be wrong, but I think windows can do that out of box. Couple of years ago Iv'e done this with IEEE1394, but i think the same can go with USB – David Goshadze Feb 21 '13 at 11:02
  • Ha ha! I just thought of creating a complex, noise-resistant protocol working over audio cable then connect audio output of one comp to another an vice versa. And serialize/deserialize data to audio streams... – David Goshadze Feb 21 '13 at 11:10
  • @David If I'm informed correctly, IP over firewire is no longer supported (by default) since Vista, but I think it should work over USB. Nevertheless, I'm not allowed to use any IP traffic. Why? Well, customer is king ;-) – Vincent van der Weele Feb 21 '13 at 11:11
  • What are your requirements for the streaming performance? – David Goshadze Feb 21 '13 at 11:16
  • http://www.ftdichip.com/Products/Cables/USBtoUSB.htm – David Brabant Feb 21 '13 at 11:20

1 Answers1

1

I chose a different approach, but for those interested, I can share the results of my research. I found 3 potential solutions, at different cost levels.

  1. Using a USB link cable. This requires a USB 2.0 bridge/link cable ($15 - $40, depending on the quality) and a wrapper around the standard Windows driver. This wrapper can be implemented using LibUsbDotNet.

  2. Using FireWire. This requires a standard FireWire cable. A custom driver should be implemented, for which I found only one SDK called FireAPI. The API is very low-level and in-depth knowledge of FireWire is a must. The licence fee for this SDK is $450.

  3. Using reflective memory. This requires two custom PCI cards and a corresponding wire. The PCI cards will automatically copy a predefined region of RAM memory to each other, with very low latency. This approach is definitely the easiest, but also most costly. The cheapest variant I found, by Dolphinics, still costs about $1.500 for the entire solution.

Vincent van der Weele
  • 12,927
  • 1
  • 33
  • 61