91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.85MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-09-21
  • 語言: C/C++
  • 標簽: WEB??socket??HTTP??

資源簡介

用純C語言編寫的簡單WEB服務器,實現網頁的訪問,和簡單CGI功能。

資源截圖

代碼片段和文件信息

#include?
#include?
#include??
//#define?SERVPORT????5050
#pragma?comment(lib“ws2_32.lib“)

#define?SERVER_PORT?5050?????????//自定義的服務端口
#define?HOSTLEN?256???????????//主機名長度
#define?BACKLOG?10???????????//同時等待的連接個數

/**************************************
?該方法包裝了send()
?通過該方法發送數據?能夠全部發出
?沒有遺漏
**************************************/
int?sendall(int?s?char?*buf?int?*len)?
{
int?total;??????????//?已經發送字節數
int?bytesleft;??????????????????????????????????//還剩余多少字節
int?n;
total=0;
bytesleft=*len;
while(total? {
n?=?send(s?buf+total?bytesleft?0);
if?(n?==?-1)?
{
break;
}
total?+=?n;
bytesleft?-=?n;
}
*len?=?total;???????????//?返回實際發送出去的字節數
return?n==-1?-1:0;??????????//?成功發送返回0?失敗-1
}

/**************************************
?該方法處理錯誤請求
?并向客戶端發送錯誤信息
**************************************/
void?wrong_req(int?sock)?
{
char*?error_head?=?“HTTP/1.1?501?Not?Implemented\r\n“;?//輸出501錯誤
char*?error_type?=?“Content-type:?text/plain\r\n“;
char*?error_end?=?“\r\n“;
char*?prompt_info?=?“The?command?is?not?yet?completed\r\n“;

int?len;
len?=?strlen(error_head);
if?(sendall(sock?error_head?&len)?==?-1)?
{???//向客戶發送
printf(“Sending?failed!“);
return;
}??????
??
len?=?strlen(error_type);
if?(sendall(sock?error_type?&len)?==?-1)?
{
printf(“Sending?failed!“);
return;
}

len?=?strlen(error_end);
if?(sendall(sock?error_end?&len)?==?-1)
{
printf(“Sending?failed!“);
return;
}

len?=?strlen(prompt_info);
if?(sendall(sock?prompt_info?&len)?==?-1)
{
printf(“Sending?failed!“);
return;
}
}

/**********************************
?該方法判斷用戶請求的文件是否存在
?不存在返回0?存在返回文件的實際大小
***********************************/
int?not_exit(char*?arguments)?
{
struct?stat?dir_info;
if(stat(arguments?&dir_info)?==?-1)
return?0;
else?
return?dir_info.st_size;
}

/*************************************
?所請求的文件不存在
*************************************/
void?file_not_found(char*?arguments?int?sock)?
{
char*?error_head?=?“HTTP/1.1?404?Not?Found\r\n“;???//構造404錯誤head
int?len;
char*?error_type?=?“Content-type:?text/plain\r\n“;
char*?error_length?=?“Content-Length:?%d\n\n“;
char*?error_end?=?“\r\n“;
char?prompt_info[50]?=?“Not?found:??“;

len?=?strlen(error_head);
if?(sendall(sock?error_head?&len)?==?-1)?
{????//向客戶端發送
printf(“Sending?error!“);
return;
}
len?=?strlen(error_type);
if?(sendall(sock?error_type?&len)?==?-1)?
{
printf(“Sending?error!“);
return;
}
//send?the?length
len?=?strlen(error_length);
if?(sendall(sock?error_length?&len)?==?-1)?
{
printf(“Sending?error!“);
return;
}

len?=?strlen(error_end);
if?(sendall(sock?error_end?&len)?==?-1)?
{
printf(“Sending?error!“);
return;
}

strcat(prompt_info?arguments);
len?=?strlen(prompt_info);
if?(sendall(sock?prompt_info?&len)?==?-1)?
{????//輸出未找到的文件

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????855??2010-07-27?10:27??server0727\aa.html

?????文件??????83794??2008-04-14?20:00??server0727\aa.jpg

?????文件???????1135??2006-05-10?00:50??server0727\cc.jpg

?????文件????2065408??2010-09-13?09:08??server0727\Debug\server.bsc

?????文件?????213043??2010-09-13?09:08??server0727\Debug\server.exe

?????文件?????255768??2010-09-13?09:08??server0727\Debug\server.ilk

?????文件??????27123??2010-09-13?09:08??server0727\Debug\server.obj

?????文件????3907948??2010-09-13?09:08??server0727\Debug\server.pch

?????文件?????607232??2010-09-13?09:08??server0727\Debug\server.pdb

?????文件??????????0??2010-09-13?09:08??server0727\Debug\server.sbr

?????文件??????50176??2010-09-13?09:08??server0727\Debug\vc60.idb

?????文件??????69632??2010-09-13?09:08??server0727\Debug\vc60.pdb

?????文件???????1599??2010-06-24?10:17??server0727\download.html

?????文件???????3672??2010-07-27?10:31??server0727\index1.html

?????文件???????2355??2010-07-27?13:49??server0727\index2.html

?????文件?????????73??2010-09-13?09:17??server0727\readme.txt

?????文件??????12844??2010-09-13?09:23??server0727\server.c

?????文件???????3977??2010-07-27?09:55??server0727\server.dsp

?????文件????????537??2010-07-19?14:26??server0727\server.dsw

?????文件??????41984??2010-09-15?13:08??server0727\server.ncb

?????文件??????48640??2010-09-15?13:08??server0727\server.opt

?????文件???????1373??2010-09-13?09:08??server0727\server.plg

?????文件??????????8??2010-07-27?10:20??server0727\style.ccs

?????目錄??????????0??2010-09-13?09:08??server0727\Debug

?????目錄??????????0??2010-09-15?13:08??server0727

-----------?---------??----------?-----??----

??????????????7399176????????????????????25


評論

共有 條評論