PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
15596 01/06/22 18:03:21 RE(15):PB7.0: Socket通信 recvのロジックについて(自己完結) By M.M
15593 01/06/22 15:39:51 RE(14):PB7.0: Socket通信 recvのロジックについて(自己完結) By Rt
15592 01/06/22 15:38:44 RE(13):PB7.0: Socket通信 recvのロジックについて(自己完結) By Rt
15588 01/06/22 11:03:01 RE(12):PB7.0: Socket通信 recvのロジックについて By Rt
15587 01/06/22 10:53:54 RE(11):PB7.0: Socket通信 recvのロジックについて By Rt
15585 01/06/22 10:47:10 RE(10):PB7.0: Socket通信 recvのロジックについて By Taka
15581 01/06/21 15:42:04 RE(9):PB7.0: Socket通信 recvのロジックについて By Rt
15580 01/06/21 15:39:22 RE(8):PB7.0: Socket通信 recvのロジックについて By Rt
15577 01/06/21 13:12:38 RE(7):PB7.0: Socket通信 recvのロジックについて By あすかちゃんの父
15570 01/06/21 10:59:56 RE(6):PB7.0: Socket通信 recvのロジックについて By M.M
15568 01/06/21 10:43:42 RE(5):PB7.0: Socket通信 recvのロジックについて By Rt
15559 01/06/20 20:37:40 RE(4):PB7.0: Socket通信 recvのロジックについて By あすかちゃんの父
15558 01/06/20 20:07:00 RE(3):PB7.0: Socket通信 recvのロジックについて By Rt
15557 01/06/20 19:56:39 RE(2):PB7.0: Socket通信 recvのロジックについて By Rt
15556 01/06/20 19:40:42 RE(1):PB7.0: Socket通信 recvのロジックについて By M.M
15554 01/06/20 19:31:48 PB7.0: Socket通信 recvのロジックについて By Rt

カテゴリ:PowerBuilderの開発環境
日付:2001年06月21日 10:43 発信者:Rt
題名:RE(5):PB7.0: Socket通信 recvのロジックについて

あすかちゃんの父さん、こんにちは。



>同期モードの場合は定期的にrecv関数をコールしてデータを受信
>していないか確認する必要がありますので、Rtさんのロジックで
>問題ないと思います。
>ただバッファメモリ用配列lc_chkで、recv関数で受信完了した分
>シフトしながら次に受信したデータを引き取っていますよね。
>ということは引き取った分だけrecv関数の使えるバッファメモリ
>のサイズが小さくなるのに、バッファサイズ指定のll_recv_len_chk
>は3000で固定になっているので、ここで配列の境界を越えたりし
>てませんでしょうか。

越えるようなことはないと思います。
recvの第3引数(recv(SocketNo,Recv_Buf,Recv_Size,0))のRecv_Sizeは配列の要素数を
越えないように設定してあります。


>recv関数で引き取るためのバッファメモリと、分割して引き取っ
>たデータを結合するバッファメモリを分けた方がいいと思います。

どうも問題個所はMemCopyにあるようです(LOGをとってみたらMemCopyの前の行で落ちている)
MemCopy(lstr_chk,lc_chk[1],3000)
構造体のサイズは3000で配列のサイズも3000です。
PBでの構造体もしくは配列はメモリ上で連続した領域を確保していないのでしょうか?
ちなみに構造体はバウンダリングが起きないようにメンバのサイズを確保しています。

MemCopyの宣言部は
Subroutine MemCopy(ref chk_buf chk, ref char hpvSource, Long cbCopy) Library \"Kernel32.dll\" Alias 
for \"RtlMoveMemory\"
です。

どなたか助けてください。
非同期にすれば解決するのでしょうか?


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Sybase SQL Anywhere Server
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.