首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PC与PC的USB通信

PC与PC的USB通信
EN

Stack Overflow用户
提问于 2012-02-17 03:30:19
回答 4查看 12.5K关注 0票数 6

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-17 04:03:09

我找不到一种方法让一台电脑变成一台设备。那么这是可能的吗?

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

但我只会用一根局域网电缆。现在我认识的每一台电脑都有以太网。TCP/IP并不是很难使用。

票数 5
EN

Stack Overflow用户

发布于 2012-02-17 04:05:01

如果你这么喜欢串行端口,你应该为每台计算机买一个USB-to-serial adapter,然后把它们连在一起。这些设备在您的计算机上创建一个虚拟COM端口,您可以像使用普通COM端口一样使用它。

票数 5
EN

Stack Overflow用户

发布于 2013-11-11 16:25:40

您需要具有支持API或SDK的USB数据传输电缆(也称为USB数据链路电缆),然后使用以下代码。通信速度比使用WinSock(TCP/IP) over USB或串口over USB快得多。USB2.0通信速率为480 data,有效数据通信速度大于100 data,可隔离病毒和网络攻击。

代码语言:javascript
复制
void CU2uDlg::OnOK() 
{
BYTE        buf[65530];
LPU2URET    pU2uRet;
BOOL        bRet;
int         ret;
CString     msgstr;

ret = u2u_open();
if (ret == -1){
    AfxMessageBox("Open U2U device Success.");
}else{
    msgstr.Format("Open U2U device fail,return:%d", ret);
    AfxMessageBox(msgstr);
    return;
}

//send data
bRet = u2u_SendData(buf, 65530, ret);
if(!bRet)
{
    msgstr.Format("Send data error,return:%d", ret);
    AfxMessageBox(msgstr);
    return;
}

//receive data
while (1){
    bRet = u2u_RecvData(recvData, dataLen, ret);
    if( !bRet )
    {
        msgstr.Format("Receive data error,return:%d", ret);
        AfxMessageBox(msgstr);
        u2u_close();
        return;
    }else{
        break;
    }
}
u2u_close();


}

请参阅:Reference1Reference2

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9317823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档