网络编程零碎知识总结
浏览器默认是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) 收藏 举报
浙公网安备 33010602011771号