2台のPC間でバイナリデータの送受信を行いたいのですが、具体的な解決方法がわかりません。
イメージとしては、USB経由で音声データを送受信して音を鳴らすという感じです。
Windowsマシン2台、1つのデータは1~2KB程度ですが、10mS に130データ程になります。
20MB/S程度の通信速度になりますので、USB2.0 でも十分かと思うのですが、
1)PC同士をUSBで接続できない
2)接続できたとして、アプリからのアクセス方法がわからない
といった問題があります。
送受信したいアプリプログラムはC#で、送受信すべきデータがあれば、送受信するといった簡単なものです。必要なら、Cで書き直しても構いません。
遅延はあまり出したくないので、1ms毎に13データ程をまとめて処理が理想ですが、100ms毎に1300データをまとめてでも何とか可能です。
接続方法やドライバ、アプリからのアクセス方法、ご教示お願いします。PCには、UB以外にはLANの端子もあり、アプリ接続のときはネットにつなげる必要がありませんので、LAN端子経由での送受信でも構いません。
かなり特殊な希望なので、使えそうな有償のソフトや装置での解決策も歓迎です。よろしくお願いします。
No.1
- 回答日時:
ソケットって知ってますか?
下記で参考コードありで説明していますので、ご自分でくんでみてください。
参考URL:http://www.geocities.jp/sugachan1973/doc/funto45 …
回答ありがとうございます。
ソケット、聞いたことあります。usami33さんの言葉で言えば、私の質問は、
USBあるいはLANの端子を使って
ソケットが使える状態に持ってゆく具体的方法
ご教示お願いします、になりますね。
更なる回答、よろしくお願いします。
No.2
- 回答日時:
>>送受信したいアプリプログラムはC#で、送受信すべきデータがあれば、送受信するといった簡単なものです。
必要なら、Cで書き直しても構いません。昔、C言語で、TCP/IPを使ってお互いにデータ通信をするプログラムを作成したことがありますが、完成までに、かなり時間がかかった覚えがあります。
基本的には、送受信バッファを用意しておき、そこにデータがあれば、ソケット通信でデータの送信、受信を実行する処理をスレッドで実行するものでした。
速度要求も厳しいので、まともに動作するのか?って最後までわからない状況でしたね。
なお、Linux環境ですといいのですが、Windows環境では、ソケット通信のAPIに制限があり、いろいろと資料を調べることになりました。
特注ハードだったので、ハードバグ、ドライバのバグもあったりしました。
書店で売られているTCP/IP関係のやや高価な本には、参考となるソースが掲載されていたと思います。
あるいは、ネットを丹念に探せば、どこかに参考になるソースがあるかもしれませんね。
頑張ってください。
回答ありがとうございます。
>あるいは、ネットを丹念に探せば、どこかに参考になるソースがあるかもしれませんね。
探しているのですが見つからず、質問しています。
何かご存知なら、よろしくお願いします。
No.3
- 回答日時:
プログラムの話には入りませんが, そもそも「PC 同士を USB ケーブルで直結」することはできません.
USB では (PC に組み込まれた) ルートハブがすべてのデバイスを制御します. なので, PC同士を USB で直結すると互いに相手を制御しようとしてしまいまともに通信することができなくなってしまいます. 「2台の PC を直接つなぐ USBケーブルがある」と思うかもしれませんが, これは実際には「途中にあるデバイスを 2台の PC につないでいる」だけであって, 本当に直結しているわけではありません.
逆に言えば「そ~いうデバイスを作ればいい」ということにはなりますが.... まあ, 面倒っぽいので素直に LAN に逃げた方がよいかと.
回答ありがとうございます。
>そもそも「PC 同士を USB ケーブルで直結」することはできません.
存じております。ですから、
「使えそうな有償のソフトや装置での解決策も歓迎です」
と質問しています。
よろしくお願いします。
No.4
- 回答日時:
USBで直結ができず、イーサネットで結合させると思いますが。
パソコンの上には「USBホストコントロ-ラ」が利用されていますが、
PCを直結した場合、両者ともホストとして制御していると思われます。
Linuxドライバだと、ホストコントローラを「ターゲットモード」という、
子機側の応答をさせて活用できるかも、と過去質問にはあります。
http://oshiete.goo.ne.jp/qa/5141138.html
WinVista/7で「転送ツール」ユーザー設定などの移行機能については、
USBホスト同士を対向接続する回路付きケーブルを用いるとされていて、
http://windows.microsoft.com/ja-JP/windows7/tran …
http://ascii.jp/elem/000/000/126/126635/
(現行品だとシステムトークスのSUGOICABLEなど。アプリやオートランが
仕込まれているので、別個にツールを使うというケースは聞かない)
OS自体が直結利用をカバーしていないと思われます。
その為、転送ケーブルの確保よりもLANのピア接続なりハブ接続で結合し、
OS実装済みの機能で確実に通信させる事にしてが、作りやすいはずです。
追伸、スマートフォンで現存らしいUSB OnTheGo(ターゲット・ホスト兼用)
のドライバメーカー解説。ただしスマートフォン時代より前に書かれたまま
http://www.uquest.co.jp/embedded/3minutes/3otg.h …
回答ありがとうございます。
>その為、転送ケーブルの確保よりもLANのピア接続なりハブ接続で結合し、
>OS実装済みの機能で確実に通信させる事にしてが、作りやすいはずです。
どなたかどこかで作っていないのでしょうかね。
質問にも書きましたが、
接続方法やドライバ、アプリからのアクセス方法の具体例、
有償でも入手したいです。
参考にさせていただきます。
No.5ベストアンサー
- 回答日時:
再び#1です
ソケット通信はTCP/IPを使用して通信しますので、速度てきには十分な速度がでるかと
※USBでできないとの記載がありましたが、USBでの相互通信ケーブルも販売されてますよ、でもこちらはソフトが組めないので手動で転送となります
ソケットの話に戻して、ポートとIPアドレスを指定して相手とコネクトし、あとはsendを繰り返すだけなので、ソフトが組める方なら、確実で簡単です。
また、参考URL以外にもソケット通信でググるとたくさんのサンプルソフトが公開されているので、用途や完成度を見てお好きなものが使えますよ。
参考URL:http://www.multisoft-lab.com/voicechat/socket.html
再度の回答、ありがとうございます。
USBで繋げる方がうれしいですが、
>※USBでできないとの記載がありましたが、USBでの相互通信ケーブルも
>販売されてますよ、でもこちらはソフトが組めないので手動で転送となります
とのことですので、今回はTCP/IPで検討したいと思います。
TCPである必要もなくUDPで十分、欠損データはどしどし捨ててでもリアルタイム性が重要なので、逆にUDPのほうが適していると思いますが、まずはTCPでつなげてから、UDPへの変更を考えようと思います。
また有用なWEBページを教示くださりありがとうございます。
参考にさせていただきます。
No.6
- 回答日時:
No2です。
>>>あるいは、ネットを丹念に探せば、どこかに参考になるソースがあるかもしれませんね。
探しているのですが見つからず、質問しています。
何かご存知なら、よろしくお願いします。
「あるかもしれませんね。」と書いたように、私もネット上で雛形となるようなソースを探し出すことはできませんでした。
やや高価ですけど書籍「詳解TCP/IP(ピアソンエデュケーション)」の掲載ソースと解説を参考にして作成しました。
他の安いTCP/IP関連の書籍は知りたい部分の記載が無く、あまり役に立ちませんでした。
再度の回答、ありがとうございます。
USBならアイソクロナス転送、LAN端子ならUDP転送が希望ですが、まずはTCP/IPでの接続の方向で検討したいと思います。
>やや高価ですけど書籍「詳解TCP/IP(ピアソンエデュケーション)」の掲載ソースと解説を参考にして作成しました。
>他の安いTCP/IP関連の書籍は知りたい部分の記載が無く、あまり役に立ちませんでした。
貴重な経験談、感謝です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ルーター・ネットワーク機器 家庭内LANで10GbE 3 2022/11/14 02:03
- その他(スマートフォン・携帯電話・VR) iPhone SE を使ています、ボイスメモのPC保存方法を教えてください 2 2022/11/12 09:08
- その他(メールソフト・メールサービス) メールサーバーは「PC側がメールをDL済みか否か?」を何を以て感知するのか? 2 2022/12/20 14:56
- Android(アンドロイド) Androidスマホのデータ移行が終わらない 1 2023/08/04 17:25
- iPhone(アイフォーン) 皆さんiPhoneは、機能が少な過ぎますか?? iPhoneには、なぜ僕がAndroid合計3台持ち 2 2022/07/12 19:59
- その他(パソコン・スマホ・電化製品) 無線信号の受信装置 1 2023/01/08 07:22
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- ネットワーク OSI参照モデルの各層の役割がわかりません。 3 2023/04/21 21:12
- その他(インターネット接続・インフラ) ホームページのログイン認証の際、PCから相手方サーバーに対し送信されるMACアドレスについて 1 2022/10/17 14:14
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Gmailアプリ
-
Gmail
-
ぷららメールの送受信が出来な...
-
outlookでpstファイルを読み込...
-
Outlook 電源OFFの受診の仕方
-
Outlookメールの送受信について
-
ぷららメールアドレスを設定し...
-
メールの送受信の設定お願いし...
-
Outlookで送受信日時もExcelに...
-
メール送受信ができない。
-
Outlook2002のアカウントについて
-
thunnderbird受信ページでメニ...
-
アメリカで受信はできても送信...
-
hotmail タイムアウトエラー
-
プロバイダに、メールの送受信...
-
捨てアドって危険?
-
システム管理者はどこまでのメ...
-
Outlook のエラーメッセージ(0x...
-
ノートンセキュリティをインス...
-
メール全文がが受信出来ません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Outlookで送受信日時もExcelに...
-
Outlook(office365)の送受信が...
-
Gメールで1行の文字数を設定...
-
Gmail
-
メールアカウントの設定が勝手...
-
Outlook 電源OFFの受診の仕方
-
捨てアドって危険?
-
ぷららメールの送受信が出来な...
-
ODNへのアクセス
-
ログイン期限が切れましたと出...
-
outlookでメール送受信の状況表...
-
メール全文がが受信出来ません
-
プロバイダに、メールの送受信...
-
ノートンセキュリティをインス...
-
筆ぐるめの送受信履歴について
-
thunnderbird受信ページでメニ...
-
Outlookメールの送受信について
-
Outlook のエラーメッセージ(0x...
-
テザリング
-
ぷららメールアドレスを設定し...
おすすめ情報