軟體架構師何志丹
本程式只是入門級程式,所以不考慮
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...