PC到PC的USB通信

use*_*513 7 usb pc communication

如何通过USB在两台PC之间进行通信?我想要一个程序通过USB端口将数字发送到另一台PC上,另一台程序会显示这些数字.我觉得这是不可能的,因为PC是主机而不是设备,但USB真的是有限的吗?我实际上讨厌USB不像只有输入缓冲区和输出缓冲区的COM端口.您轻松发送和接收.我查看了libusb,我可以使用它,但我找不到一种方法来使一台PC成为一台设备.甚至可能吗?

Tur*_*o J 5

我找不到让一台PC成为设备的方法.甚至可能吗?

不,这在PC上是不可能的.USB始终与Host-> Device通信,PC始终为Host.您可以购买一条特殊的USB2USB电缆,它的中间有一个芯片,可以作为两端的设备进行通信.

但我只会使用局域网电缆.我认识的每台PC最近都带有以太网.TCP/IP不是很难使用.


Dav*_*son 5

如果您非常喜欢串行端口,那么您应该为每台计算机安装一个USB转串口适配器,然后将它们连接在一起.这些设备在您的计算机上创建一个虚拟COM端口,您可以像使用普通COM端口一样使用它.


Kai*_*Liu 5

您需要有一条支持API或SDK的USB数据传输线(也称为USB数据连接线),然后使用以下代码。通信速度比通过 USB 使用 WinSock(TCP/IP) 或通过 USB 串行端口快得多。USB2.0通讯速度为480Mbps,有效数据通讯速度大于100Mbps,并且可以隔离病毒和网络攻击。

\n\n
void CU2uDlg::OnOK() \n{\nBYTE        buf[65530];\nLPU2URET    pU2uRet;\nBOOL        bRet;\nint         ret;\nCString     msgstr;\n\nret = u2u_open();\nif (ret == -1){\n    AfxMessageBox("Open U2U device Success.");\n}else{\n    msgstr.Format("Open U2U device fail\xef\xbc\x8creturn\xef\xbc\x9a%d", ret);\n    AfxMessageBox(msgstr);\n    return;\n}\n\n//send data\nbRet = u2u_SendData(buf, 65530, ret);\nif(!bRet)\n{\n    msgstr.Format("Send data error\xef\xbc\x8creturn\xef\xbc\x9a%d", ret);\n    AfxMessageBox(msgstr);\n    return;\n}\n\n//receive data\nwhile (1){\n    bRet = u2u_RecvData(recvData, dataLen, ret);\n    if( !bRet )\n    {\n        msgstr.Format("Receive data error\xef\xbc\x8creturn\xef\xbc\x9a%d", ret);\n        AfxMessageBox(msgstr);\n        u2u_close();\n        return;\n    }else{\n        break;\n    }\n}\nu2u_close();\n\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

请参阅:\n参考文献 1参考文献 2

\n