用C#(C++)Socket后台编写自己的IIS服务器代替IIS
本文触及到Socket TCP/IP编程方面的知识,其实这是很简单的内容,大家看不明的地方大可以先往下读,以后再看一遍,可能会觉得很简单。
很多人写网站用惯了IIS和Tomcat这些高级的后台来做网站后台服务,然而,在这些后台还没有问世之前,人们是怎么编写网站的呢?他们底层共同遵守的准则和标准又是什么呢?
这就是http协议和html、js、css标准。这些都是国际统一的标准,和.net、java、php这些语言完全没有关系的。比例如下面一段代码:
<html>
<body>
<form runat="server" id="form1">
<%
string str_response="hello world";
........................................
Response.Write(str_response);
%>
<asp:Button ID="bn_1" runat="Server" Text="点击"/>
</form>
</body>
</html>
长长的一段代码最终会被解析成下面这样
<html>
<body>
<form id="form1" action="">
hello world
<input type="submit" value="点击" name="bn_1"/>
</form>
</body>
</html>
IIS帮助我们,将<%%>里面的内容转化成要输出的内容,同时将<asp:这些标签,转化为相应的标签(这里是<input>标签),这些在html里面是非标准的标签,属于iis规定的标签,iis有这个责任去将这些标签转化为标准的标签返回给客户。
上面这些是基础,相信很多编写过网站的人都知道是怎么一回事,下面回到正题。
下面这段代码可能大家就很少接触了:
GET /siteserver/mypage.youlike?h_username=myname HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152;
.NET CLR 3.5.30729)
Host: 127.0.0.1:45632
Content-Length: 93
Connection: Keep-Alive
Cache-Control: no-cache
其实这很简单,这就是客户端IE打开一个网址http://127.0.0.1:45632/siteserver/mypage.youlike?h_username=myname,http://127.0.0.1:45632这个网站的后台收到的全部协议代码。
这些字符串用换行符相隔。
其中127.0.0.1:45632是一个标准的站点的地址,127.0.0.1是IP,45632是服务端监听的端口。
User-Ag
相关文档:
今天看《C++ Templates》,看到一个非类型模板实参的例子中有这样的代码:
template <typename T, T nontype_param>
class C;
class X{
public:
int n;
static bool b;
};
C<int X::*, &X::n>* c5;
X::*可以表示X类的成员的指针,用于表示类型,第一次见, ......
H文件和C文件怎么用呢?一般来说,H文件中是declare(声明),C文件中是define(定义)。因为C文件要编译成库文件(Windows下是.obj/.lib,UNIX下是.o/.a),如果别人要使用你的函数,那么就要引用你的H文件,所以,H文件中一般是变量、宏定义、枚举、结构和函数接口的声明,就像一个接口说明文件一样。而C文件则是实现细节 ......
C程序与汇编程序相互调用规则
为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序间的调用规
定一定的规则。ATPCS,即ARM, Thumb过程调用标准(ARM/Thumb Procedure Call
Standard),是ARM程序和Thumb程序中子程序调用的基本规则,它规定了一些子程序间调用
的基本规则,如子程序调用过程中的寄存 ......
用C#播放音频和Flash
WinForm中如何播放声音与Flash动画
注意:小括号内的是按钮的其它翻译名称,不同版本的译名是有区别的。
一、在VC#播放声音
新建一个VC#的Windows Form工程(Windows应用程序),并且定义两个菜单按钮(menuItem1,menuItem2)。
选择菜单中的&ldqu ......