作者t78923t (トースト)
看板C_and_CPP
標題[問題] 關於使用USB傳送資料的作法
時間Thu Feb 2 23:00:48 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
WIN8.1 WIN7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VS2015
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
我想做的事是將資料(字串)由A電腦(WIN8.1)經由USB的方式傳送至B電腦(WIN7)
方法是直接用一條公對公的USB線將兩台電腦主機版上的USB孔對接
A電腦的程式負責送出字串,B電腦的程式則負責接收
兩邊都使用VS2015做開發
請問這樣的方法可行嗎?
若可行的話,請問能用與RS232相同的方式傳送資料嗎?
還是有一定要使用的特定方式(特定函式庫等等)?
謝謝
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.126.5.217
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1486047654.A.961.html
1F:推 longlongint: 接網路線比較快 02/02 23:08
接網路線傳輸速度比USB2.0快嗎?
2F:推 james732: 要走usb protocol很麻煩吧,宣告desc什麼的 02/02 23:42
實際實作很麻煩嗎? 不知道能不能用libusb來實作
※ 編輯: t78923t (111.241.88.177), 02/03/2017 01:42:42
3F:推 askacis: 你兩個都是 USB host是要怎麼溝通? 02/03 01:50
4F:推 askacis: usb的世界不像其他裝置可以 peer to peer 02/03 01:52
5F:→ askacis: 硬要用是用 otg,一端當device,回應主機的列舉,linux 有u 02/03 01:56
6F:→ askacis: sb gadget driver可以套到你 otg硬體層,你再負責控制otg 02/03 01:56
7F:→ askacis: 的硬體送資料到硬體fifo 02/03 01:56
8F:→ askacis: 實務上usb device端要有硬體的datasheet可以看才知道怎 02/03 01:58
9F:→ askacis: 麼填register控制 02/03 01:58
10F:→ askacis: libusb只是負責餵東西到 OS,最後是由OS控制 usb host硬 02/03 02:02
11F:→ askacis: 體發資料出去 02/03 02:02
12F:→ askacis: 所謂的usb device指的是滑鼠,印表機,掃描器,大姆哥等 02/03 02:16
13F:→ askacis: 周邊裝置,你要拿線對接兩個usb host是不可能的事 02/03 02:16
14F:→ Schottky: 你要的可能是買兩條 USB-RS232 線用 NULL Modem 對接 02/03 04:08
15F:→ Schottky: 但我不建議這樣做,如果兩台電腦都有 COM port 可用 02/03 04:08
16F:→ Schottky: 直接買 RS232 NULL modem 線來接,會比較穩定 02/03 04:09
17F:→ Schottky: 至於 COM port 如何傳輸資料 MSDN 就有講解了 02/03 04:11
請問換成USB Host-to-Host Cable就能達成了嗎?
21F:推 Qbsuran: 原PO想的, 比較像socket, 也比較簡單 02/03 10:10
※ 編輯: t78923t (120.126.5.217), 02/03/2017 12:19:48
22F:推 james732: 覺得原PO只是想用USB來做到UART能做的事?XD 02/03 12:54
23F:→ Schottky: 我的便宜主機板用Gigabit網路晶片,你覺得哪個會比較快 02/03 13:06
24F:→ Schottky: USB 2.0 Hi-Speed 上限是 480 Mbit/s 02/03 13:06
25F:→ Schottky: 不過要拼速度那又是另一個問題了,你寫的程式也要夠快 02/03 13:07
26F:→ AizawaYuuiti: 你要不要乾脆兩台電腦各接個藍芽接收器 02/03 14:05
27F:→ AizawaYuuiti: 然後中間用兩個藍芽晶片搭配IC做橋接啊? 02/03 14:06
28F:→ AizawaYuuiti: 不對= =如果用藍芽的話就直接連就好了,耍蠢了 02/03 14:07
29F:推 johnpage: 網路改光纖,長距離都不是問題 02/03 21:14
30F:推 lc85301: 是不太知道想幹嘛,如果是傳資料用網路線就行了 02/03 23:12
32F:→ lc85301: 之前有試過網路對傳 02/03 23:13
33F:推 yvb: 可能是沒相關標準的關係, USB電腦對接線可能還有若干名稱, 02/04 00:43
34F:→ yvb: 諸如 USB Link cable, USB File transfer cable 之類... 02/04 00:43
35F:→ yvb: 有的線可能還可設定為 Data-Link 或 Network-Adapter 的模式; 02/04 00:44
36F:→ yvb: 前者似乎要用特定檔案傳輸程式, 不知是否有API可供程式操作, 02/04 00:44
37F:→ yvb: 後者則是把對接線模擬為網路卡, 使用上就如同網路線對接. 02/04 00:44
38F:→ yvb: 但是這樣的線, 一方面不便宜, 另一方面透過驅動程式後, 02/04 00:44
39F:→ yvb: 速度不如想像中高; 還不如用一般網路連線方式來得便利. 02/04 00:45