Winsock2による通信でエラーが発生する。 – プログラミング – Home

Winsock2による通信でエラーが発...
 
通知
すべてクリア

Winsock2による通信でエラーが発生する。


Alq3
 Alq3
(@Alq3)
ゲスト
結合: 14年前
投稿: 28
Topic starter  

Vista SP2+VC++2005(MFC:ダイアログベース)で開発をしております。
http://msdn.microsoft.com/en-us/library/ms737593(v=VS.85).aspx
を参考にしてTCP通信のプログラムを作成しております。

サーバサイドプログラム(S)・クライアントサイドプログラム(C)を作成しました。
ルータおよびPCのポート開放設定をしたうえでプログラムを実行したのですが、

・Cを用いてループバックアドレス(127.0.0.1)でアクセスすると通信できる(Sが文字列
を受け入れている)
・ポートスキャンを行うと接続できる(SがAcceptしたことを通知する)

状況であるにもかかわらず
グローバルIPアドレスを使ってアクセスするとCはコネクトで失敗します。
WSAGetErrorを用いてエラー番号を調べると10061(Connection refused.)を返してきま
す。
原因としてどのようなことが考えられるでしょうか?


引用解決済
トピックタグ
Alq3
 Alq3
(@Alq3)
ゲスト
結合: 14年前
投稿: 28
Topic starter  

追記:
ルータを介さずにPCを接続した場合にはグローバルIPアドレスを用いた場合でも
意図したとおりに通信ができています。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 4年前
投稿: 776
 

単純にpersonal firewallに引っかかってたりしませんか?
S機上のファイアウォールソフトは何をお使いですか。
とりあえずログ等を確認してみてはどうでしょう。

# それでだめならWiresharkで見るのが早いかも。


返信引用
Alq3
 Alq3
(@Alq3)
ゲスト
結合: 14年前
投稿: 28
Topic starter  

Ban様

回答ありがとうございます。
ファイアウォールですけども、ウインドウズの自前の物のみを使っておりまして、
こちらにおいてもアプリケーション(S)のポート開放を行っております。
また、ポートスキャンを行った時に、SがAcceptしているということは、
ポートの開放が正しく行われていると考えているのですがいかがでしょうか?

Wireshark、今まで存じ上げませんでしたが使用を検討してみます。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 4年前
投稿: 776
 

> また、ポートスキャンを行った時に、SがAcceptしているということは、
・ポートスキャンを行うと接続できる(SがAcceptしたことを通知する)

スキャンというのはどういった環境で、どのマシンからどのように行っていますか。
別マシンからルータ越しに実施して実施して、
Sがそれを検出したと(ログ等で)通知したということでしょうか。
もしくは、例えばnmap等の実施結果でSが反応したと出ているのでしょうか。
(自機上からの接続と他機からの接続は区別されるかと思いますが、
スキャンはSと別機上からルータを介して実施してもOKということですか)

> ルータを介さずにPCを接続した場合には
HUB経由orクロスケーブルで直結という理解で合っていますか。

挙動を見る限りでは、ありそうなのが
・受信側S機の実行権限が足りないか、
・ファイアウォールの設定が合っておらず、実は拒否されている
・ルータの設定が間違っていて、実は拒否されている/届いていない
あたりだと思うのですが、一時的にでも閉鎖網にして
全機のファイアウォールをOFFにしてみるとどうなりますか。
また、admin権限で起動していますか、それ以外ですか。

# Wiresharkなら送受信する内容が見られますので、
# (TCPのプロトコルが分かれば)それで一発かと思います。


返信引用
しま
 しま
(@しま)
ゲスト
結合: 17年前
投稿: 123
 

ネットワークの構成がよく分らないので何が起きているのかがよく分りません

試験に使うPCは何台ですか?
 クライアントプログラムとサーバープログラムとは別のPCで動かして
 試験していますか?
 (「追記:」での試験は1台で行ったでしょうから除外していいです)
ルーターはどういうものですか?
 家庭用の、インターネットと家庭内の LAN とを結びつけるもの?
 もう少し高機能なもの?
 それ以外

試験で使ったグローバルIPアドレスは取得した固定IPアドレスですか?
それともプロバイダーが接続時に割り当てるIPアドレスでしょうか?


返信引用
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

とりあえずこういうトラブルの解決にはネットワーク構成の正確な図が必須。
それなしでは答える側も妄想と憶測をめぐらすしかないので。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました