[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/03/22(Thu) 19:06
投稿者名:MOONEY
Eメール:
URL :
タイトル:
WINSOCKについて
こんにちわ。いつもお世話になっております。

WINDOWS SOCKETを用いて下記のような処理をするツールを
構築しています。

@WINSOCKの初期化
ASOCKET(サーバー1用)の作成
BSOCKET(サーバー2用)の作成
Cサーバー1に接続
Dサーバー2に接続
Eサーバー1にSend関数よりメッセージを送信
Fサーバー1からのメッセージをRecv関数で取得
Gサーバー1にSend関数よりメッセージを送信
Hサーバー1からのメッセージをRecv関数で取得
ISOCKET(サーバー1用)の破棄
JSOCKET(サーバー2用)の破棄
KWINSOCKの切断

E〜Hの処理を複数回ループするケースがあるのですが、
その際に2回目以降で送信や受信でエラーとなってしま
います。。
当該処理にて追加すべき必要な処理があるのでしょうか。

VB6.0(SP5) WinXP Proで開発しています。

投稿時間:2007/03/23(Fri) 03:28
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: WINSOCKについて
WINSOCK って……もしかして、API 制御ですか?
だとしたら、Send/Recv ではなく、send/recv な気もしますけど。
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/

> VB6.0(SP5) WinXP Proで開発しています。
Winsockコントロール(MSWinSck.ocx) をコントロール配列にして使う…とか。

投稿時間:2007/03/23(Fri) 16:39
投稿者名:MOONEY
Eメール:
URL :
タイトル:
Re^2: WINSOCKについて
> WINSOCK って……もしかして、API 制御ですか?
> だとしたら、Send/Recv ではなく、send/recv な気もしますけど。
> http://www.kt.rim.or.jp/~ksk/wskfaq-ja/

ソース確認しましたが、send/recv となっております。
アホな質問ですが Send/Recv は異なるものという扱いなんですかね?

投稿時間:2007/03/23(Fri) 17:43
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: WINSOCKについて
> ソース確認しましたが、send/recv となっております。
> 質問ですが Send/Recv は異なるものという扱いなんですかね?

Win32 API では、関数名の大文字小文字が区別されます。(Win16 では区別されません)

たとえば、Win32 API の『Sleep』関数を例にあげると、この関数は、
下記のいずれの宣言からも、正しく呼び出すことができます。

 α) Private Declare Sub   Sleep   Lib "kernel32" (ByVal ms As Long)
 β) Private Declare Sub   sleep   Lib "kernel32" Alias   "Sleep"    (ByVal ms As Long)
 γ) Private Declare Sub Dorminall Lib "kernel32" Alias   "Sleep"    (ByVal ms As Long)


しかし下記のように、『sleep』という小文字で宣言してしまった場合、これらの宣言では
『エントリ sleep が DLL ファイル kernel32 内に見つかりません。』のエラーになります。

 δ) Private Declare Sub   sleep   Lib "kernel32" (ByVal ms As Long)
 ε) Private Declare Sub   Sleep   Lib "kernel32" Alias   "sleep"    (ByVal ms As Long)
 ζ) Private Declare Sub  Rarihoma Lib "kernel32" Alias   "sleep"    (ByVal ms As Long)

投稿時間:2007/03/24(Sat) 21:32
投稿者名:MOONEY
Eメール:
URL :
タイトル:
Re^4: WINSOCKについて
> Win32 API では、関数名の大文字小文字が区別されます。(Win16 では区別されません)

大変勉強になりました。どうもありがとうございます!