VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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メソッド使って受信監視するような方法を試してます。
まだ固まる症状はでてないのでこの方法で行こうかと思ってます。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -