电脑A和电脑B它们之间用USB线连接起来,
怎样让A与B中的两个程序进行通讯,相当于socket的客户端与服务器端之间的通讯。
简单来说就是怎样写程序将A中的文件,传输到B中?用C++实现,
大家给下思路, 哪里有这方面的知识, 介绍书或者这方面的资料, 通讯方面我完全是新手,急啊

解决方案 »

  1.   

    两个host主机转接起来,在usb规范中是不允许的,所以有一种桥接的设备,因为网络的普遍应用,所以这种usb主机桥几乎没有市场,所以价格奇高,尽量不要采用这种方案。
      

  2.   

    现在获取了USB设备的DevicePath, 并且通过CreateFile打开设备获取了HANDLE, 
    那么怎样进行通信啊, 网上说ReadFile, WriteFile, 我试了一下没成功,请问下具体怎么用啊???
      

  3.   

    什么设备啊,DevicePath取的对不对啊。
      

  4.   

    U盘可以吗, DevicePath值为\\?\usb#vid_0781&pid_5567#200443219307b7b0d41c#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
      

  5.   

    代码如下:HANDLE hUsbFile = CreateFile(pBuffer->DevicePath,
    GENERIC_READ | GENERIC_WRITE,
    FILE_SHARE_READ | FILE_SHARE_WRITE,
    NULL,
    OPEN_EXISTING,
    0/*FILE_ATTRIBUTE_NORMAL*/,
    NULL);

    if (hUsbFile == INVALID_HANDLE_VALUE)
    {
    // 这里没问题
    MessageBox("CreateFile error");
    SetupDiDestroyDeviceInfoList(hdevClassInfo);
    return;
    }

    CString strError;
    char szBuffer[1024] = {0};
    strcpy(szBuffer, "Write data to Usb device!");
    DWORD dwWrittenSize = 0;
    int nWriteRet = WriteFile(hUsbFile, szBuffer, 1024, &dwWrittenSize, NULL);
    if (!nWriteRet)
    {
    // 这里报错, 错误值是87(参数错误)
    strError.Format("WriteFile error = %d", GetLastError());
    MessageBox(strError);
    }