use*_*513 7 usb pc communication
如何通过USB在两台PC之间进行通信?我想要一个程序通过USB端口将数字发送到另一台PC上,另一台程序会显示这些数字.我觉得这是不可能的,因为PC是主机而不是设备,但USB真的是有限的吗?我实际上讨厌USB不像只有输入缓冲区和输出缓冲区的COM端口.您轻松发送和接收.我查看了libusb,我可以使用它,但我找不到一种方法来使一台PC成为一台设备.甚至可能吗?
我找不到让一台PC成为设备的方法.甚至可能吗?
不,这在PC上是不可能的.USB始终与Host-> Device通信,PC始终为Host.您可以购买一条特殊的USB2USB电缆,它的中间有一个芯片,可以作为两端的设备进行通信.
但我只会使用局域网电缆.我认识的每台PC最近都带有以太网.TCP/IP不是很难使用.
您需要有一条支持API或SDK的USB数据传输线(也称为USB数据连接线),然后使用以下代码。通信速度比通过 USB 使用 WinSock(TCP/IP) 或通过 USB 串行端口快得多。USB2.0通讯速度为480Mbps,有效数据通讯速度大于100Mbps,并且可以隔离病毒和网络攻击。
\n\nvoid 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}\nRun Code Online (Sandbox Code Playgroud)\n\n\n