VB6でWinsockコントロールを使ってTCP/IPで通信しています。
ネットワークアダプタをふたつ付けて2台のコンピュータ相手に通信したいと考えていますが、ネットワークアダプタを指定する設定が無いのですが、どうやって指定するのでしょうか?
自動で送り先を振り替えてくれるのかと思ったら、以下のように試して見てできませんした。
ローカル エリア接続(192.168.0.1)
・・・通信したい相手(192.168.0.10)が1:1でつながっています。
ローカル エリア接続 2(192.168.0.50)
・・・HUBで(192.168.0.51)がつながっています。
(仮の設定で後でグローバルなアドレスに変更する予定)
これではつながるのですが、
ローカル エリア接続(192.168.0.50)
・・・HUBで(192.168.0.51)がつながっています。
ローカル エリア接続 2(192.168.0.1)
・・・通信したい相手(192.168.0.10)が1:1でつながっています。
これだと192.168.0.10につながりません。
単純にネットワークアダプタを指定しないといけないのかと考えたのですが、
Winsockコントロールにはそのような項目が見当たりません。
192.168.0.10と、192.168.0.51(後で160.100.0.1等に変更する予定)の2台にイーサーネットで通信したいのですが、送出先の選択はどのようにすればいいのでしょうか?
現在はどちらのアダプタにもローカルアドレスを設定しているのが悪いのでしょうか。
接続1にローカルアドレス、接続2にグローバルアドレスを設定すれば勝手に振り分けてくれるものなのでしょうか?
今すぐには試せないので、情報をお願いします。
確認していないのですが、Bindメソッドは使えないですか?
(;゜д゜)ァ....
確かにHELPに書いてありますね。
UDPのときにしか使わないものだと思ってました。
でもリッスンする前ということは、サーバー側と言うことですよね。
クライアント側でアダプタを選択したいのですが、
それはどうやるんでしょうか?
>でもリッスンする前ということは、サーバー側と言うことですよね。
環境が構築できないので推測での話になってしまうのですが、
サーバー側ではなく、接続する前に行う必要があるという事
だと思います。
参考までに
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/advanced.html#forceif
そのページはわたしも発見してました。
試して見たところBindしたあとにConnectしようとするとエラーが出てしまいますね。
現在の回線状態では実行できません、みたいな感じのがでます。(正確に覚えてないです)
Bindの後のステータスプロパティは1でした。
今回の用途からするとクライアント側でアタプタを選択する必要があるのです。
引き続き情報お願いします。
>試して見たところBindしたあとにConnectしようとするとエラーが出てしまいますね。
>現在の回線状態では実行できません、みたいな感じのがでます。(正確に覚えてないです)
>Bindの後のステータスプロパティは1でした。
Bind後のステータス1は、開いている状態なのでConnectする前にCloseする必要が
あると思います。
Closeした後でもエラーが出るか確認してみてください。
ネットマスクと静的route設定で解決される問題だと思いますが
如何?
PC(Windows)をルータとして使用する・・・
と言うのが参考になるかと。
テストでは、同一セグメントのアドレス設定なので、余計に問題が
出ていますが、ルータのように異種セグメントなら、何の問題も無
く動作します。
ネットワークの設定から勉強し直したら?
以上。
| ツイート |
|