- - PR -
VistaでのSocketサーバーについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-07-11 10:44
いつもお世話になります。
ソケットサーバーの経験が浅い為、わからないことがあり 質問させていただきます。 以前、XPにて作成したソケットサーバをVistaへ移行したいと考えて いるのですが、VistaがIpv6対応の為かどうかはよくわからないのですが、 クライアントからの接続ができないようになってしまいました。 (OS:Vista Business 開発環境VB 2005) サーバーのプログラムとしては、 Dim ipAdd As System.Net.IPAddress = System.Net.Dns.GetHostEntry("172.XX.XX.XX".AddressList(0) Dim listener As New System.Net.Sockets.TcpListener(ipAdd, 10000) listener.Start() Dim tcp As System.Net.Sockets.TcpClient = listener.AcceptTcpClient() としており、 クライアントの接続は dim tcpClient as New System.Net.Sockets.TcpClient tcpClient.Connect("172.XX.XX.XX", 10000) としていますが接続ができません。 ご教授の程よろしくお願いします。 | ||||
|
投稿日時: 2008-07-11 11:02
そのVista機が外部からの通信をブロックしているのが原因な気がしますので、
http://windowshelp.microsoft.com/Windows/ja-JP/Help/df3de57e-86d8-4cd7-808d-9907561b21bc1041.mspx http://windowshelp.microsoft.com/Windows/ja-JP/Help/4da18300-9044-47b6-9038-595c78db81ab1041.mspx このへんを参考にして通信が許可されているか確認し、されていなければ許可してあげるとよいでしょう。 別途パーソナルファイアウォールなどを使っている場合は、その製品のマニュアルを見てください。
初期設定でIPv4にも対応していますので、安心してください。 | ||||
|
投稿日時: 2008-07-11 11:18
XP でも AddressList の 0 決め撃ちじゃ拙いと思いますが。IPv6 がインストールされてたら IPv6 のアドレスを返す可能性がありますよ。 各 IPAddress の AddressFamily を調べないと。 | ||||
|
投稿日時: 2008-07-13 22:19
ご返事いただきありがとうございます。
ファイアーウォールについては、無効にしてみても 接続ができなかったので他の原因ではないかと考えています。 (net statでListening しているのを見た所、指定したIPにて Listeningしていないので、これが原因であると思うのですが、 なぜ、そうなるのかがよくわかりません。) 又、hongliangさんからご指摘あった件ですが、 IPAddress の AddressFamily を調べるとは具体的にはどのような 事をする必要があるのでしょうか? (以前記載した、AddressList の 0 決め撃ちはサンプルプログラムを 見て、同様に記載しXPで接続できたので良いと思っていたのですが、 知識不足で申し訳ありません。) | ||||
|
投稿日時: 2008-07-13 22:44
IPAddress.AddressFamily プロパティ
配列の要素を順にたどって、AddressFamily プロパティ値が InterNetwork であれば、その値を使うように書けばよいです。 | ||||
|
投稿日時: 2008-07-15 12:40
Hongliangさん、rainさん
ありがとうございます。 おかげで解決することができました。 |
1