- ベストアンサー
LANに接続せずにtcpClientを用いる方法
現在、VBを使って、複数台のPC間でデータを送受信するツールを作っています。 LANに接続する場合、tcpClient.Connectメソッドを用いて 相手PCのIPとポート番号を指定してやりとりしています。 これは問題なく動作しています。 しかしLANに接続せずに(つまり、それぞれのPC同士がハブを介してストレートケーブルで接続しているだけの状態) これと同様の仕様を実現するには どのようにしたらよいのでしょうか? LANにつながない場合にはIPアドレスが取得できないので、 tcpClient.ConnectでIPを指定する部分を どうすればいいかが分からないのです。 また、LANに接続しない場合、PC同士を クロスケーブルで接続したほうがいいのか、 それともストレートケーブルで接続したほうがいいのか、 そのあたりもアドバイス頂ければ幸いです。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「LANに接続しないで」とお書きですが、2台のPCをクロスケーブルやハブを介しピアツーピアでつなぐのも立派なLANです。 それはともかく、互いに通信し合うには、双方が異なるIPアドレスを持たなければなりません。 デフォルトでは、自動取得になっていると思いますが、手動にします。 アドレスは何でもいいですが、とりあえず1台を192.168.0.1、もう1台を192.168.0.2、サブネットマスクを255.255.255.0にしておけば、通信できるはずです。 設定画面はOSによって違いますが、ネットワーク関係のプロパティのなかのtcp/ipのプロパティにあります。
その他の回答 (2)
- todo36
- ベストアンサー率58% (728/1234)
http://hatena.ne.jp/1067800653 のように設定して > tcpClient.ConnectでIPを指定する部分 192.168.0.2で動くでしょう。
お礼
ご回答ありがとうございました。 教えて頂いたホームページは初めて見たのですが、 初心者には貴重な情報がたくさんあって、 大変助かりました。 参考にさせて頂きます。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
IPを自動取得する設定になっていて、自動取得されなかった場合、 MSのPCの場合MSが保持するIPのウチのどれかが自動的に設定されます。 ipconfig などのコマンドで確認してみるといいと思います。 なので、そのようにして調べたIPで同様に通信できると思います。 >LAN(WAN?)に接続しない場合、PC同士を クロスケーブルを使ってもいいですが、 既にハブがあるなら、ハブを介してストレートケーブルで接続した方が いいと思います。
お礼
>そのようにして調べたIPで同様に通信できると思います。 なるほど。IPアドレスはインターネットに接続することで得られるものと早とちりしておりました。 IPアドレスの書き換えのみで、これまでのツールを 問題なく使用することができそうです。 クロスかストレートかについては、回答して頂いた内容から、 どちらを用いても大差ないと感じましたので、 お勧めして頂いたように、ストレートケーブルで接続してみたいと思います。 ありがとうございました。
お礼
>「LANに接続しないで」とお書きですが、2台のPCをクロスケーブルやハブを介しピアツーピアでつなぐのも立派なLANです。 確かにそうですね^^; 「ローカル」の大きさが異なっても、LANであることには変わりはないのですね。 IPを勝手に設定できるというのは、知りませんでした。 何も考えずに、示して頂いたIPアドレスの通りに設定して接続してみましたが、 幾つかのホームページを見てみたところ、 共通して192.168.0.xというIPアドレスを用いていたので、 このアドレスは特別な意味を持っているのでしょうか。。。 (まぁこの件については、自力で少し調べてみます) ご回答ありがとうございました。