Silentdoer

导航

网络编程零碎知识总结

浏览器默认是80端口,且域名只是对应Ip而不包括端口,且浏览器主要支持的协议是Http(超文本传输协议),网络数据交互的协议还有Ftp等等(TCP和UDP貌似跟Http不属于一个层的协议?)。

当我们往浏览器里输入如:http://baidu.com时(它省略了Default文件,比如Defaullt.asp)实际上就可以理解为 以Http协议调用 IP 为baidu.com,端口 为80的程序(比如说IIS)的baidu.com/Default.asp接口;或说是

以Http协议获取 Ip为baidu.com ;端口为 80 对应的程序 的Default.asp的“值”,获取的值再由浏览器解释出来,就变成我们看到的网页。难以理解的话可以想下调用WCF接口返回文本数据的情形。

string str = wcf.InterfaceFunc();(返回类型string) 这里InterfaceFunc()就类似 Default.asp,而IP和端口在Binding里已经写好了类似baidu.com:80,而Http就类似Contract。

而如果是wcf.InterfaceFunc(int arg); 则 arg就类似登录某个网站时需要填写账号密码,特定的账号密码返回特定的HTML(即返回值),这里也是一样特定的arg,返回特定的 string。

而处理arg保证不同的arg返回的是其对应的数据的那个程序(WCF服务程序)就类似IIS或阿帕奇等。

其实也可以用TCP服务端和客户端通信来解释:

服务端有A(int a)、B(string b, double c)、C()和接口函数InterFunc(string funName, args[]):string;

客户端要调用A函数必须 InterFunc("A(int)",34);那这里的 A函数就类似Default.asp,而34就是访问Default.asp需要的参数。同样的B、C也对应一个页面。

且服务端收到funName和args的值后将args的值传给对应的函数并处理,由不同的参数值返回不同的值,这步就类似动态页面的处理过程。

而Http协议对应的其实已经由 InterFunc(...)的返回值定义了,是string类型值(而不是说是个exe或桌面布局什么的),或说将InterFunc(...)返回的值以string的形式解析。

posted on 2016-12-02 18:46  Silentdoer  阅读(212)  评论(0)    收藏  举报