TCP/IP通信

[戻る]
とし 2007/10/31(水) 13:11:58
Win2000、VC6.0、MFCソケット使用していません。

クライアントとサーバーの接続はできているのですが、sendした際にエラーになります。
WSAGetLastErrorでエラーコードを見ると10038 ソケットハンドルが無効となっております。
sendの第一引数にはsocket関数で取得した値を確かに渡しているのですが・・・

考えられる要因が見当つきません。些細なことでもかまいませんのでよろしくお願いします。

+ 2007/10/31(水) 14:15:24
それは、ここ書かれていることと同じ手順を踏んでますか?
http://www.geekpage.jp/programming/winsock/

とし 2007/10/31(水) 14:33:53
ダイアログベースで作成していてクライアント側はダイアログのメンバ変数にSOCKET型の変数
を宣言しています。
クライアント側は接続が押された時にソケットの作成、connect、送信が押されたときにsendするよ
うにしています。

なので手順がまったく同じかとなると違うということになるかもしれません。
ちなみにconnectはうまくいっていて、サーバー側の相手情報にも入ってきています。

+ 2007/10/31(水) 16:37:40
connect成功時のnetstatの結果は?

+ 2007/10/31(水) 18:26:28
クライアントならconnect成功後にcmd画面で、
netstat -anp tcpと打つことで本当にコネクションが
張られたことを確認できます。
#つか、ソケットアプリのデバッグでは常にnetstat画面を(ry

ESTABLISHEDであるならば、次に確認する点は
connectつかったSOCKET既述子と、sendにつかったSOCKET既述子
は同一人物ですか?。SOCKET既述子はunsined intなので
デバッグ中に観察できますよね?

yoh2 [E-Mail] 2007/10/31(水) 23:09:54
接続を行う関数内でダイアログのSOCKET型メンバ変数と同名の変数を
宣言していて、メンバ変数の方には影響を与えていない、というケアレス
ミスということはありませんか?
もしくは送信を行う関数で同様のことを行ってしまっているとか。

とし 2007/11/01(木) 09:06:38
[[解決]]
解決しました。ありがとうございました。

古いスレッドには追加発言できません。