作者smallcoldair (嗨大家好)
看板Visual_Basic
標題[請益] Winsock問題:堆疊空間不足
時間Fri May 13 23:13:17 2005
各位好…
我用winsock傳檔案:
傳送端一次讀取1024 Byte
然後用迴圈的方式一直senddata
可是當檔案超過一定大小時,接受端卻會出現錯誤:堆疊空間不足
我的感覺好像是 傳送端senddata太快,接受端無法負荷的感覺,請問是這樣嗎?
又若是這樣,請問有方法解決嗎?
謝謝^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.131.139
> -------------------------------------------------------------------------- <
作者: fumizuki (小獅) 看板: Visual_Basic
標題: Re: [請益] Winsock問題:堆疊空間不足
時間: Sat May 14 09:08:26 2005
※ 引述《smallcoldair (嗨大家好)》之銘言:
: 各位好…
: 我用winsock傳檔案:
: 傳送端一次讀取1024 Byte
: 然後用迴圈的方式一直senddata
: 可是當檔案超過一定大小時,接受端卻會出現錯誤:堆疊空間不足
這個錯誤訊息發生的原因為:
1. 有太多使用中的 Function、Sub 或 Property 程序呼叫。
2. 區域變數需要更多可用的區域變數空間。
3. 有太多固定長度字串。
4. 太多巢狀 DoEvents 函數呼叫。
5. 程式碼引起了事件重疊。
: 我的感覺好像是 傳送端senddata太快,接受端無法負荷的感覺,請問是這樣嗎?
: 又若是這樣,請問有方法解決嗎?
: 謝謝^^
--
VB 程式設計 倉木麻衣 PTT 星爺板 行列輸入法
======================================================
Visual_Basic MaiKuraki Stephen Array
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.58.156.43
> -------------------------------------------------------------------------- <
作者: mhc (路邊小草) 看板: Visual_Basic
標題: Re: [請益] Winsock問題:堆疊空間不足
時間: Sat May 14 15:20:41 2005
※ 引述《smallcoldair (嗨大家好)》之銘言:
: 各位好…
: 我用winsock傳檔案:
: 傳送端一次讀取1024 Byte
: 然後用迴圈的方式一直senddata
: 可是當檔案超過一定大小時,接受端卻會出現錯誤:堆疊空間不足
: 我的感覺好像是 傳送端senddata太快,接受端無法負荷的感覺,請問是這樣嗎?
: 又若是這樣,請問有方法解決嗎?
: 謝謝^^
假如是多連線負載的問題,試試看用multithread的方式,之前這樣解決過
不過以1 to 1的連線下應該是不會這樣,所以你是不是資料都放在array中....
放好以後沒有進一步處理,然後array隨著資料一直收就一直長
最後記憶體不夠就stack overflow了? 我猜你的狀況是如此...
假如是這樣,那就是有空要處理一下array的內容,然後釋放其所佔空間即可
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.87.117
> -------------------------------------------------------------------------- <
作者: smallcoldair (嗨大家好) 看板: Visual_Basic
標題: Re: [請益] Winsock問題:堆疊空間不足
時間: Fri May 20 11:59:58 2005
※ 引述《fumizuki (小獅)》之銘言:
: ※ 引述《smallcoldair (嗨大家好)》之銘言:
: : 各位好…
: : 我用winsock傳檔案:
: : 傳送端一次讀取1024 Byte
: : 然後用迴圈的方式一直senddata
: : 可是當檔案超過一定大小時,接受端卻會出現錯誤:堆疊空間不足
: 這個錯誤訊息發生的原因為:
: 1. 有太多使用中的 Function、Sub 或 Property 程序呼叫。
: 2. 區域變數需要更多可用的區域變數空間。
: 3. 有太多固定長度字串。
: 4. 太多巢狀 DoEvents 函數呼叫。
: 5. 程式碼引起了事件重疊。
: : 我的感覺好像是 傳送端senddata太快,接受端無法負荷的感覺,請問是這樣嗎?
: : 又若是這樣,請問有方法解決嗎?
: : 謝謝^^
我把程式中的Doevents去除掉了 果然能解決此種問題
不過接受端仍無法接收完全。有大大有類似檔案傳輸的範例或想法可以提供嗎?
謝謝^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.131.139
推 fumizuki:用timer去接收資料 210.58.156.43 05/20
推 smallcoldair:感謝你的回答…^^ 不過可以說的更仔細點嗎?140.116.131.139 05/20
推 fumizuki:是哪裏不清楚@@ 210.58.156.43 05/20
推 smallcoldair:謝謝,我試驗出來了^^140.116.131.139 05/20