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月20日 20:37 発信者:あすかちゃんの父
題名:RE(4):PB7.0: Socket通信 recvのロジックについて

Rtさん、こんばんは。

>しかし、recvの受信は一度ですべて受信できるような感じのロジックだったので
>こちらに書き込んだ次第でありました。

RtさんはWinsockを同期モードで使っていませんか?私の作った
ソケット通信のプログラムは非同期モードを使っていて、一度に
全てのデータを受信しているわけではありません。
非同期モードでは、Winsockがデータを受信してプロトコル・ス
タック・バッファにデータを引き取ると、アプリケーションに対
してFD-READイベントで通知してきます。ですので、長いデータ
を分割して受信するたびにFD-READイベントが起動して、そのイ
ベントの中でデータを引き取っています。

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

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


付加情報:

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.