C 建立最簡單的web服務,無需IIS

2021-07-03 17:21:52 字數 2835 閱讀 2257

軟體架構師何志丹

本程式只是入門級程式,所以不考慮

1,多執行緒。

2,安全性。

4,keep-alive。

5,不考慮head。

6,為了簡潔,刪掉了catch的內容。

exe的祖父目錄必須有wwwroot資料夾,且資料夾有index.htm,內容不限。 

開發環境: winxp+vs2010c#

一,新建乙個專案testweb,專案型別:windows視窗應用程式。

二,新建類requestprocessor。

using system;

using system.io;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

using system.diagnostics;

namespace testweb

;string strs = requestlines[0].split(sp);

if (strs[0] == "get")

return false;

}void send(string filename, long start, long length)//傳送檔案(檔案頭和檔案)

catch (ioexception)// filenotfoundexception)

if (length == 0)

length = fs.length - start;

sendheader("text/html", (fs.length == length), start, length);

sendcontent(fs, start, length);

}public void sendheadrandstr(string str)//直接將str的內容發給html

private void sendheader(string filetype, bool ball, long start, long length)//傳送檔案頭

catch (argumentexception)//the request is wrong

}private void sendcontent(filestream fs, long start, long length)//發生檔案內容

while (fs.position != start + length);

}catch (socketexception e)

catch (ioexception e)

}public socket msocksenddata;//notice: get from clientsocketthread.s

private string getpathfilename(string filename)

private void sendstr(encoding coding, string strsend)//傳送乙個字串}}

三,新建類clientsocketthread。

using system;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

namespace testweb

;string requestlines = new string[32];

do while (arequestprocessor.parserequestandprocess(requestlines));

s.close();

}catch (socketexception)}}

} 四,主對話方塊中增加按鈕,按鍵的相應函式加如下**。

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

using system.io;

using system.net;

using system.net.sockets;

using system.threading;

namespace testweb

private void button1_click(object sender, eventargs e)

//啟動接受執行緒

clientsocketthread mythreadhandler = new clientsocketthread();

mythreadhandler.tcpl = tcpl;//notice: dont forget do this

threadstart mythreadstart = new threadstart(mythreadhandler.handlethread);

thread myworkerthread = new thread(mythreadstart);      

myworkerthread.start();}}

catch (socketexception )

catch (formatexception)

catch (exception )

//  console.read();}}

}五,啟動testweb.exe,並單擊主對話方塊上的按鈕。在瀏覽器中輸入: 或

C 最簡單的登入Web服務

由於演示程式,所以有以下問題 1,密碼是明碼傳輸。本文在 c 建立最簡單的web服務,無需iis 的基礎上完成。具體步驟 一,requestprocessor增加變數mlogin,改寫parserequestandprocess函式。protected bool mlogin false publi...

C 最簡單的登入Web服務

因為演示程式,所以有下面問題 1。password是明碼傳輸。本文在 c 建立最簡單的web服務,無需iis 的基礎上完畢。詳細步驟 一。requestprocessor新增變數mlogin,改寫parserequestandprocess函式。protected bool mlogin false...

02 01 建立最簡單的web程式

所有的flask程式都必須建立乙個程式例項,這個程式例項就是flask類的物件。客戶端把請求傳送給web伺服器,伺服器再把請求傳送給flask程式例項,然後由程式例項處理請求。from flask import flask注意 此處的 name 是乙個全域性變數,它的值是 所處的模組或包的名字,fl...