線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1844
推到 Plurk!
推到 Facebook!

TidhttpServer

缺席
hughes0201
一般會員


發表:12
回覆:10
積分:9
註冊:2008-11-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-25 15:46:19 IP:61.31.xxx.xxx 訂閱
void __fastcall TForm1::httpServCommandGet(TIdPeerThread *AThread,
TIdHTTPRequestInfo *RequestInfo, TIdHTTPResponseInfo *ResponseInfo)
{
String pic="";
String request = RequestInfo->Document;
if (request.IsDelimiter("/",1))
{
if (request.Length() > 1)
{
char* buf = 0;
char ch = '\\';
buf = request.c_str();
*(buf) = ch;
pic = (String)buf;
pic = "." pic;
}
}
String response ="";
ifstream fIn;
fIn.open("lpr.html",ios::in);
char InChar = 0;
while (!fIn.eof())
{
fIn.get(InChar);
response = InChar;
}
fIn.close();
if (!pic.IsEmpty())
{
picFile = new TFileStream(pic, fmOpenRead);
ResponseInfo->ContentStream = picFile;
}
else
ResponseInfo->ContentText=response;
//delete file;
}

小弟的程式如上,不太會用indy的tidhttpserver,
我知官方網站上有delphi的sample,只是我看不太懂~~~

我只想做一個簡單的web server,讓使用者連結過來只是看一些圖片而已。
上面是主要的程式碼,picFile是個全域變數。

整個程式用來傳基本的html 內容和圖片,
我想請問在使用 TFileStream時,
我原本的想法是在 使用者 連接結束時,release記憶體 (picFile->free)。
可是會出錯。存取到非法的位址~~

我想了一下,可能是cotentStream的內容還在使用中,而我delete了他所以出錯。
可是我是在disconnect 時delete的不是嗎?

不知有沒有tidhttpserver for borland c 的範例?
我找了很久~~沒有看到~~
系統時間:2017-10-18 20:47:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!