解决方案 »
- 如何改变richedit控件的边框宽度类型和背景色
- 有关线程函数的问题
- 关于程序要发送错误报告的问题
- DAO问题求解
- 急!动态申请空间为什么是空呢?大家帮助,代码是。。。。。。。。
- 如何将MAINFRAME中定义的变量传递到弹出的对话框,
- 想在CFormView的派生视类加入Property Sheet(属性页表),就象一个控件那样,怎么办
- 怎样让我的编辑控件捕捉到enter键
- SetDlgMsgResult到底是干什么的?
- 求解正确的正则表达式,问题核心是正则表达式如何获得组的“所有”匹配的内容,而不仅是最后的匹配?
- BOOL CADOReado2类 cordset::SetFieldValue(LPCTSTR lpFieldName, double dblValue)怎么用
- 如何用CDC 画椭圆
#include <Winsock2.h>
#include <stdio.h>void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err; wVersionRequested = MAKEWORD( 1, 1); err = WSAStartup( wVersionRequested, &wsaData);
if(err != 0)
{
return ;
}
if(LOBYTE(wsaData.wVersion) != 1 ||
HIBYTE(wsaData.wVersion) != 1)
{
WSACleanup();
return ;
}
SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0); SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(80); bind(sockSrv,(SOCKADDR *)&addrSrv,sizeof(SOCKADDR)); listen(sockSrv,5); SOCKADDR_IN addrClient;
int len = sizeof(SOCKADDR); while(1)
{
SOCKET sockConn = accept(sockSrv, (SOCKADDR *)&addrClient,&len);
char sendBuf[100]; sprintf(sendBuf,"<html>Welcome!</html>"); send(sockConn,sendBuf,strlen(sendBuf)+1,0); char recvBuf[1000];
int n = recv(sockConn,recvBuf,1000,0);
recvBuf[n] = 0;
printf("%s\n",recvBuf);
closesocket(sockConn);
}
} 这就是一个简单的HTTP服务器。
先把网络编程整明白,然后理解一下HTTP服务器是个啥东西再来说做HTTP服务器。
2、socket
3、线程池http服务器工作量非常大,目前大部分商业公司都直接用nginx,或者加一些自己东西(比如淘宝)。如果你是商业用途,不如直接使用nginx;如果是学校做项目那种(大家都懂的),就自己实现一个只能用于实验目的的。
防火墙设置?
还是程序问题?