2012-02-16 42 views
5

Làm cách nào để liên lạc giữa hai máy tính qua USB? Tôi muốn một chương trình để gửi số máng cổng USB đến một máy tính khác mà trên đó một chương trình khác sẽ hiển thị những con số này. Tôi có cảm giác rằng điều này là không thể bởi vì PC có nghĩa là để lưu trữ và không phải thiết bị, nhưng USB thực sự có hạn chế này? Tôi thực sự ghét rằng USB không giống như một cổng COM mà chỉ có một bộ đệm đầu vào và một bộ đệm đầu ra. Bạn gửi và nhận một cách dễ dàng. Tôi nhìn vào libusb và tôi có thể sử dụng nó, nhưng tôi không thể tìm thấy một cách để làm cho một máy tính một thiết bị. Vì vậy, nó thậm chí có thể?PC với PC Truyền thông USB

+0

có cáp USB đặc biệt bạn có thể nhận được (tìm kiếm "cáp chuyển usb") cho phép giao tiếp PC-to-PC. Không có ý tưởng làm thế nào họ làm việc - có lẽ họ có một số thiết bị đặc biệt ở giữa các máy cho phép mỗi một xuất hiện để được một thiết bị, không phải là một máy chủ. – Jason

+0

Bạn có thể ghét USB không giống như nối tiếp, nhưng với người tiêu dùng trung bình, nó là một ơn trời vì USB cho phép máy tính tự động phát hiện loại thiết bị bạn cắm vào và trong nhiều trường hợp tự động cài đặt trình điều khiển. Không cần phải nhập số cổng COM vào các tiện ích cấu hình. –

Trả lời

5

Tôi không thể tìm cách tạo một PC cho thiết bị. Vì vậy, nó thậm chí có thể?

Không, điều này không thể thực hiện trên PC. Giao tiếp USB luôn là Host-> Device và PC luôn là Host. Bạn có thể mua một cáp USB2USB đặc biệt, điều này có một chip ở giữa giao tiếp như thiết bị trên cả hai đầu.

Nhưng tôi sẽ chỉ sử dụng cáp mạng LAN. Mỗi máy tính tôi biết đi kèm với Ethernet những ngày này. TCP/IP không quá khó sử dụng.

+0

+1 cho mạng LAN và TCP/IP. Sau khi bạn thiết lập một kết nối TCP/IP, nó rất giống với cổng nối tiếp và bạn chỉ có một bộ đệm đầu vào và một bộ đệm đầu ra. –

+0

Vâng, trong trường hợp đó, tôi sẽ phải xem xét sử dụng Ethernet hoặc cáp USB đặc biệt. Cảm ơn bạn. – user1214513

+0

Còn về [Bật USB RNDIS] (https://support.criticallink.com/redmine/projects/arm9-platforms/wiki/Enabling_USB_RNDIS_Support)? Hỗ trợ _RNDIS cho phép PC nói chuyện với hệ thống nhúng dựa trên Linux qua USB bằng cách làm cho hệ thống nhúng trông giống như bộ điều hợp Ethernet kèm theo USB._ Và chúng tôi có thể truy cập RNDIS như một máy chủ web ssh. Câu hỏi của tôi nếu chúng ta cần một loại cáp đặc biệt cũng chỉ là thường xuyên? –

4

Nếu bạn thích các cổng nối tiếp quá nhiều, bạn chỉ cần có một USB-to-serial adapter cho mỗi máy tính và sau đó nối chúng lại với nhau. Các thiết bị này tạo cổng COM ảo trên máy tính của bạn và bạn có thể sử dụng nó giống như cách bạn sử dụng cổng COM thông thường.

+0

+1 vì là một trong những cách đơn giản nhất, có thể tấn công được. – gbmhunter

3

Bạn cần có cáp truyền dữ liệu USB (còn được gọi là cáp liên kết dữ liệu USB) hỗ trợ API hoặc SDK, sau đó sử dụng mã sau. Tốc độ truyền thông nhanh hơn nhiều so với sử dụng WinSock (TCP/IP) qua cổng USB hoặc cổng nối tiếp qua USB. Tốc độ truyền thông USB2.0 là 480Mbps, tốc độ truyền dữ liệu hiệu quả lớn hơn 100Mbps, và có thể tách virus và tấn công mạng.

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(); 


} 

Xem: Reference1, Reference2

Các vấn đề liên quan