PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
22074 05/07/05 16:28:47 RE(2):PB6.5: WinSockを使用したサーバサイドプログラムの無限ループ処理について By moon
22073 05/07/04 12:23:06 RE(1):PB6.5: WinSockを使用したサーバサイドプログラムの無限ループ処理について By Taka
22071 05/07/01 20:53:13 PB6.5: WinSockを使用したサーバサイドプログラムの無限ループ処理について By moon

カテゴリ:スクリプトの記述
日付:2005年07月04日 12:23 発信者:Taka
題名:RE(1):PB6.5: WinSockを使用したサーバサイドプログラムの無限ループ処理について

moonさん、こんにちは。

>無限ループの中で「accept()」関数を呼び出す度に
>使用されるメモリが増加されてしまいます。
>(sleep(10)を間に入れてますが1秒おきに8KBぐらい)

accept()によってクライアントとの接続が確立するわけですから、
内部的にメモリ使用量が増加するのは当然でしょう。
WinSockでは、確か送受信バッファサイズのデフォルトが 8192バイトだったと記憶しています。

処理が終わった後、クライアントソケットを close() していると思いますが、
そのタイミングでメモリ使用量が減っていれば特に問題ありません。

送受信データのサイズが8Kも要らない、というのであれば、
setsockopt()で任意サイズを指定できます。


ちなみに、無限ループでaccept()ってことはブロッキング方式ですか?
ノンブロッキング方式にしておいたほうが良いですよ。念のため。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS Oracle SQL*Net 8
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)

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