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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.