//此為 這個部落格主人寫的
//我將裡邊的內容進行整理,然後轉換了一下,
#include
#include
#include
#include
#include
#include
#include
#define hostlen 256
#define portnum 12345
//#define debug
int make_server_socket_q(int,int);
void error(char *err)
//與下方函式進行組合處理,針對傳遞過來的鏈結請求,進行相對應的處理.
int make_server_socket(int port) //num for listen
//被轉換成為網路鏈結部分的函式.
int make_server_socket_q(int port,int backlog)
/* 允許接入*/
if(listen(sock_id,3))//建立未處理的請求佇列,給定佇列最大數為3;
error("listen failed");
return sock_id;
}/* 測試是否存在 */
int check_exist(char *filename)
/* 檢測檔案型別 */
char * file_type(char *filename)
/* 報文 頭部 */
void do_head(int sock_fd,char *type)
/* 404 檔案沒找到 */
void do_nofile(char *filename,int sock_fd)
/* 處理其它命令 */
void do_unkown(int sock_fd)
/* 核心處理 從檔案中讀取 然後寫入socket */
void do_show(char *arg,int sock_fd)
;char c;
if(!extension)
return ;
if(strcmp(extension,"html")==0)
content="text/html";
else if(strcmp(extension,"htm")==0)//這兩者是網頁的一種
else if(strcmp(extension,"png")==0)//這三者是型別資料
content="image/png";
else
content="text/plain"; //預設處理
sock_fp=fdopen(sock_fd,"w");
file_fp=fopen(arg,"rb");
if(file_fp!=null&&sock_fp!=null)
}/* request處理 */
int process_rq(char *request,int sock_fd)
// 執行緒主函式,應資料型別不知道,這會使資料在傳送過程中導致資料的丟失與無法訪問,所以現將資料的型別轉換完成後在對其進行相應的處理.此函式應該輸出的是傳遞資料的
//型別.
void thread_routine(void *fd)
int main(int argc,char *argv)
//其連線方式應該為,每進行一次資料請求時進行一次資料的鏈結,在此資料請求中有while中的兩個函式進行處理,一是提取請求中的佇列,二是判斷請求佇列中資料型別然後
//進行相應的資料處理,與鏈結.
port=argc==1?portnum:atoi(argv[1]); //注意這裡如果只有乙個引數,即是設定預設埠
if((sock_id=make_server_socket(port))==-1)//將鏈結部分合併成為乙個函式進行,相應資料的處理.
return -1;
printf("now listen to the port #%d/n",port);
fflush(stdout);
//此處是在針對鏈結成功後的的伺服器進行資料的傳送,應為傳送的資料可能為多種,若按照同一種處理方式會到時資料混亂,所有下邊給定每個傳送的資料進行整理判斷
//然後進行相應的操作.
while(1)
return 0;
}
在 DOS 下實現多執行緒
在 dos 下實現多執行緒 程式在 turbo c 3.0 下除錯通過,採用了最簡單的時間片輪轉法,實現了多執行緒的系統,程式盡量採用了最簡潔的技術來實現多工的系統,主要使用到了c標準庫中的setjmp和longjmp兩個函式,程式絕大部分都是採用c c 語言書寫,但是仍然不可避免的採用了三句內嵌彙...
自用 linux下多執行緒
3 簡單的多執行緒示例 乙個簡單的linux多執行緒示例如下 include include include include void thread function void arg char message hello world int main printf waiting for thre...
linux下多執行緒程式設計
先看執行的結果 1 主函式正在建立執行緒,2執行緒1被建立 3 thread1 i m thread 1th 4執行緒2被建立 5 thread2 i m thread 2nd 6 thread2 number 0 7執行緒3被建立 8主函式正在等待執行緒結束.9 thread1 number 0 ...