xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 133KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-12
  • 語言: C/C++
  • 標(biāo)簽: http??server??linux??

資源簡介

linux 平臺(tái)下實(shí)現(xiàn)一個(gè)簡單httpserver 具體可以參考個(gè)人博客。

資源截圖

代碼片段和文件信息

/*

?*?pub.c
?*
?*??Created?on:?2015-4-16
?*??????Author:?hsc
?*/
#include
#include
#include
#include
#include
#include
#include?
#include?
#include

#include“pub.h“
#include“thread_work.h“
char?LOGBUF[1024];
void?save_log(char?*buf)
{
??????FILE?*fp?=?fopen(“l(fā)og.txt““a+“);??
??????fputs(buffp);??
??????fclose(fp);??
}
void?setdaemon()?//設(shè)置為守護(hù)進(jìn)程
{
pid_t?pid?sid;
pid?=?fork();
if?(pid? {
memset(LOGBUF0sizeof(LOGBUF));
sprintf(LOGBUF“fork?failed?%s\n“?strerror(errno));
save_log(LOGBUF);
exit?(EXIT_FAILURE);
}
if?(pid?>?0)
{
exit?(EXIT_SUCCESS);
}

if?((sid?=?setsid())? {
printf(“setsid?failed?%s\n“?strerror(errno));
exit?(EXIT_FAILURE);
}
??/*if?(chdir(“/“)? ?{
?printf(“chdir?failed?%s\n“?strerror(errno));
?exit(EXIT_FAILURE);
?}*/
?umask(0);
?close(STDIN_FILENO);
?close(STDOUT_FILENO);
?close(STDERR_FILENO);

}

const?char?*get_filetype(const?char?*filename)?//根據(jù)擴(kuò)展名返回文件類型描述
{
////////////得到文件擴(kuò)展名///////////////////
char?sExt[32];
const?char?*p_start=filename;
memset(sExt?0?sizeof(sExt));
while(*p_start)
{
if?(*p_start?==?‘.‘)
{
p_start++;
strncpy(sExt?p_start?sizeof(sExt));
break;
}
p_start++;
}

////////根據(jù)擴(kuò)展名返回相應(yīng)描述///////////////////

if?(strncmp(sExt?“bmp“?3)?==?0)
return?“image/bmp“;

if?(strncmp(sExt?“gif“?3)?==?0)
return?“image/gif“;

if?(strncmp(sExt?“ico“?3)?==?0)
return?“image/x-icon“;

if?(strncmp(sExt?“jpg“?3)?==?0)
return?“image/jpeg“;

if?(strncmp(sExt?“avi“?3)?==?0)
return?“video/avi“;

if?(strncmp(sExt?“css“?3)?==?0)
return?“text/css“;

if?(strncmp(sExt?“dll“?3)?==?0)
return?“application/x-msdownload“;

if?(strncmp(sExt?“exe“?3)?==?0)
return?“application/x-msdownload“;

if?(strncmp(sExt?“dtd“?3)?==?0)
return?“text/xml“;

if?(strncmp(sExt?“mp3“?3)?==?0)
return?“audio/mp3“;

if?(strncmp(sExt?“mpg“?3)?==?0)
return?“video/mpg“;

if?(strncmp(sExt?“png“?3)?==?0)
return?“image/png“;

if?(strncmp(sExt?“ppt“?3)?==?0)
return?“application/vnd.ms-powerpoint“;

if?(strncmp(sExt?“xls“?3)?==?0)
return?“application/vnd.ms-excel“;

if?(strncmp(sExt?“doc“?3)?==?0)
return?“application/msword“;

if?(strncmp(sExt?“mp4“?3)?==?0)
return?“video/mpeg4“;

if?(strncmp(sExt?“ppt“?3)?==?0)
return?“application/x-ppt“;

if?(strncmp(sExt?“wma“?3)?==?0)
return?“audio/x-ms-wma“;

if?(strncmp(sExt?“wmv“?3)?==?0)
return?“video/x-ms-wmv“;

return?“text/html“;
}

int?socket_create(int?port)
{
int?st?=?socket(AF_INET?SOCK_STREAM?0);
int?on?=1;
if?(st?==?-1)
{
memset(LOGBUF0sizeof(LOGBUF));
sprintf(LOGBUF“%s%d:socker?error?%s\n“?__FILE__?__LINE__?strerror(errno));
save_log(LOGBUF);
return?0;
}
if?(setsockopt(st?SOL_SOCKET?SO_REUSEADDR?&on?sizeof(on))?==?-1)
{
memset(LOGBUF0sizeof(LOGBUF));
sprintf(LOGBUF“setsockopt?failed?%s\n“?strerror(errno));
save_log(LOGB

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????2550??2010-08-02?10:44??favicon.ico
?????文件???????96974??2015-05-13?13:32??index.html
?????目錄???????????0??2015-05-13?13:32??index_files\
?????文件??????190931??2015-05-13?13:32??index_files\all_instant_search1_c1d4131e.js
?????文件?????????705??2015-05-13?13:32??index_files\baidu_jgylogo3.gif
?????文件????????7877??2015-05-13?13:32??index_files\bd_logo1.png
?????文件????????1224??2015-05-13?13:32??index_files\env_beb83b45.swf
?????文件???????93680??2015-05-13?13:32??index_files\jquery-1.js
?????文件????????1719??2015-05-13?13:32??index_files\JSocket_9a52fc3e.swf
?????文件?????????204??2015-05-10?11:11??Makefile
?????文件????????5688??2015-05-13?20:37??pub.c
?????文件?????????368??2015-05-13?18:41??pub.h
?????文件?????????522??2015-05-13?18:36??server.c
?????文件????????3032??2015-05-13?18:45??thread_work.c
?????文件?????????297??2015-05-10?14:06??thread_work.h

評(píng)論

共有 條評(píng)論