プロが教える店舗&オフィスのセキュリティ対策術

http://www.g-ishihara.com/mfc_nw_01.htm
このサイトを参考に作っているのですが、次のようなエラーメッセージが出て動きません。
「Error : この操作を正しく終了しました。」
これはどういう意味でしょう?
調べてもよくわかりません。
ちなみに各エディットボックスの変数値はすべて、CString,Value型にしています。

A 回答 (2件)

LAN->WAN->LANの場合、経験上正しく接続できないルータが存在します。


同一PC上にサーバとクライアントが存在するのであれば、開発中は
127.0.0.1(自ホスト)へ接続し、動作確認の際には実際にWANの向こう
(会社、学校、ネットカフェなど)から接続試験を行うと良いと思います。

また、ソケット関連のプログラミングで問題が起きた場合、パケットキャプチャが
しばしば有効です。

Wiresharkなどをインストールし、具体的にどのパケットまで出ていて
誰がどのパケットに応答しないのか確認しましょう。
    • good
    • 0

どこかでerr=1になっているので、「(6)エラー表示」のブロックが実行されています。


では、どこまではerr=0であったか確認されましたか?

CSocketのメンバ関数を最後にコールした際に、「この操作を正しく終了しました。」を示す
終了ステートで終了(つまり正常終了)していることになります。

ただ、ご質問の文章とソースでは、最後にコールしたメンバ関数がどれであるのか判断できません。


憶測では、recv == 0のところをエラー判定してしまうと20バイト以下のデータを受信した際に
エラーと誤判定するバグがあるような気もします。
確認してませんけど。

この回答への補足

間違いはIP入力とポート番号を逆に入れていたことでした。
ここまではわかったのですが、LAN->WAN->LANへの通信がうまくいきません。ポートを開けて、外部からパケットをサーバに送るようにルータを設定しました。このとき自分のPCでサーバとクライアントを動かして、クライアントから自分のグローバルアドレス向けにパケットを送っても「Error : 対象のコンピュータによって拒否されたため、接続できませんでした。」というエラーが出てしまい、正常な通信ができません。どうすればいいのでしょうか?よろしくお願いします。

補足日時:2011/12/21 05:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A