C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: winsockのイベント


(過去ログ 49 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■26377 / inTopicNo.1)  winsockのイベント
  
□投稿者/ モー (26回)-(2008/10/07(Tue) 23:44:16)

分類:[.NET 全般] 

VB6DLL内で別マシンのVB6DLLとconnect処理で接続しているのですが(実績あり)、VB.NETアプリから連続して異なるIP・ポートにconnectを行うと、connect成功イベントが異常に遅延する場合があります。また存在する接続先にも繋がらないことがあります。

成功するはずのconnect処理の場合、即connectイベントを起こすにはどうすればよいのでしょうか?
引用返信 編集キー/
■26384 / inTopicNo.2)  Re[1]: winsockのイベント
□投稿者/ じゅで (98回)-(2008/10/08(Wed) 09:29:24)
No26377 (モー さん) に返信
> VB6DLL内で別マシンのVB6DLLとconnect処理で接続しているのですが(実績あり)、VB.NETアプリから連続して異なるIP・ポートにconnectを行うと、connect成功イベントが異常に遅延する場合があります。また存在する接続先にも繋がらないことがあります。

今まで、連続して異なるIP・ポートにconnectを行うという動作で、問題なく動いていましたか?
実績があるといっているのが、上記の部分であれば、次は、実績のある部分で、ネットワークの
帯域制限などをして、動作がどうなるか、確認してみてくださいな。

> 成功するはずのconnect処理の場合、即connectイベントを起こすにはどうすればよいのでしょうか?

成功するはずかは、正直言ってわからないのです。
なんで、即Connectイベントを起こすといっても、TCPで接続している限り、相手からの、
ぱけっときたよぉ〜
という合図がないと無理なのです。

UDPを使っての通信で、パケットは投げっぱなしでOKで、すぐにConnectを出して良いというなら、
できない事もないでしょうが、そうするとパケットが迷子になると、おかしな事になりますので、

1つの手段として、TCPで接続に行った瞬間には、問答無用でConnectとして、イベントを発生させ、
裏で別スレッドで、接続の確立をするという方法もなきにしもあらずです。
引用返信 編集キー/
■26391 / inTopicNo.3)  Re[1]: winsockのイベント
□投稿者/ たくボン (51回)-(2008/10/08(Wed) 10:42:04)
No26377 (モー さん) に返信
> VB6DLL内で別マシンのVB6DLLとconnect処理で接続しているのですが(実績あり)、VB.NETアプリから連続して異なるIP・ポートにconnectを行うと、connect成功イベントが異常に遅延する場合があります。また存在する接続先にも繋がらないことがあります。
netstatは確認されましたか?
ホストが何かわからないんですが、VB6がホストでしょうか?

パケットキャプチャで対応するレスポンス自体が遅いのか、.NET側での通知が遅いのかまず切り分けしてみるのがいいかと。
引用返信 編集キー/
■26395 / inTopicNo.4)  Re[2]: winsockのイベント
□投稿者/ モー (27回)-(2008/10/08(Wed) 12:12:36)
No26391 (たくボン さん) に返信
> ホストが何かわからないんですが、VB6がホストでしょうか?

ホスト側のDLLもVB6です。

>
> パケットキャプチャで対応するレスポンス自体が遅いのか、.NET側での通知が遅いのかまず切り分けしてみるのがいいかと。

パケットキャプチャは行ってみます。



ログ出力で見る限り、connectイベント(接続成功)が起きないないことがあります。
また、Sock_Errorイベントにも来ない場合もあり、connectした総数とconnectイベントとErrorイベントの総数が合わないことがあります。

connectしたら必ず成功、失敗のイベントが起きるのではないでしょうか?(ある程度時間がたてば)

連続connectすることでconnectの結果が一部返ってこないことがあるのか分からず悩んでおります。

引用返信 編集キー/
■26396 / inTopicNo.5)  Re[1]: winsockのイベント
□投稿者/ aetos(旧シャノン) (17回)-(2008/10/08(Wed) 12:23:01)
No26377 (モー さん) に返信
> VB6DLL内で別マシンのVB6DLLとconnect処理で接続しているのですが(実績あり)、VB.NETアプリから連続して異なるIP・ポートにconnectを行うと、connect成功イベントが異常に遅延する場合があります。また存在する接続先にも繋がらないことがあります。
>
> 成功するはずのconnect処理の場合、即connectイベントを起こすにはどうすればよいのでしょうか?

いくつか教えてください。
・サーバ(接続を受ける側)のマシンの OS は何ですか?
・連続接続は間隔をあけずに行っているのですか?
・.NET でうまくいかないマシンでも、VB6 ではうまくいくのですか?
引用返信 編集キー/
■26397 / inTopicNo.6)  Re[2]: winsockのイベント
□投稿者/ モー (28回)-(2008/10/08(Wed) 13:36:48)
No26396 (aetos(旧シャノン) さん) に返信
> ・サーバ(接続を受ける側)のマシンの OS は何ですか?
→クラサバのマシンともにXP Professional で SP2,SP3です。


> ・連続接続は間隔をあけずに行っているのですか?
→connect後、結果が返ってくるまでは次のconnect処理はしていませんが、一定時間経って結果がなければ、次のconnect処理を行って
 おります。

 結果は必ず来ることを前提として処理を行ったところ、いつまでも返ってこず処理が終わらない事が起こりました。


> ・.NET でうまくいかないマシンでも、VB6 ではうまくいくのですか?
クラサバ共にアプリはVB.NET, DLLはVB6(同一内容)を使用しています。
1対多の場合も同様です。
引用返信 編集キー/
■26648 / inTopicNo.7)  Re[3]: winsockのイベント
□投稿者/ モー (30回)-(2008/10/16(Thu) 15:44:39)
No26397 (モー さん) に返信
> ■No26396 (aetos(旧シャノン) さん) に返信
>>・サーバ(接続を受ける側)のマシンの OS は何ですか?
> →クラサバのマシンともにXP Professional で SP2,SP3です。
>
>
>>・連続接続は間隔をあけずに行っているのですか?
> →connect後、結果が返ってくるまでは次のconnect処理はしていませんが、一定時間経って結果がなければ、次のconnect処理を行って
>  おります。
>
>  結果は必ず来ることを前提として処理を行ったところ、いつまでも返ってこず処理が終わらない事が起こりました。
>
>
>>・.NET でうまくいかないマシンでも、VB6 ではうまくいくのですか?
> クラサバ共にアプリはVB.NET, DLLはVB6(同一内容)を使用しています。
> 1対多の場合も同様です。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -