投稿日 | : 2007/03/10(Sat) 14:25 |
投稿者 | : 戸豚 |
Eメール | : |
URL | : |
タイトル | : Re^2: Winsockコントロールを使っていて固まる |
前回に続いて、ありがとうございます。
> 1.CALL前にbytesTotalの値はいくらにしてますか?
winsckPort1_DataArrivalはVB6.0のWinSockコントロールのイベントなので、bytesTotalは受信したバイト数が入ってきています。
> 2.VB6のヘルプをみると、recvData As String
> winsckPort1.GetData recvData で、あとの引数はなしで、受信データは
> キューから取り出せるはずですよね。これでaddTcpRecivieData()は無しでテストしてみて、まずフリーズする
> ことなしに動作が続くかを確認してみたらどうでしょう
最初はStringでやってましたけどバイナリデータの扱いが面倒なのと、通信するデータのほとんどがバイナリデータなのでByte配列にした経緯があります。
試行錯誤した結果なのでいまいち自信がないですが、GetDataの使い方は正しいはずです。
addTcpRecivieData()なしではフリーズしませんでした。
ファイルに書いたりしてるのが怪しいのかと思って、試行錯誤してDataArrivalイベントで長い処理をかけると固まるのがわかったんですが、そこから先がお手上げに近いです。
たぶんDataArrivalイベントを落とすケースがあるんだと思いますが確認できてないです。
根本的な回避策ではないですけど、Do 〜 LoopでDoEvents実行しながらBytesReceivedメソッド使って受信監視するような方法を試してます。
まだ固まる症状はでてないのでこの方法で行こうかと思ってます。