在C#中会有Socket,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。
比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。对于从C#编程的角度来讲,为了方便,你可以直接选择已经制造好的轿车Http来与服务器交互。但是有时候往往因为环境因素或者其他的一些定制的请求,必须要使用TCP协议,这时就需要使用Socket编程,然后自己去处理获取的数据。就像是你用已有的发动机,自己造了一辆卡车,去从服务器交互。
WebService不需要连接,一秒中至少可以支持上万/十万的请求,每次请求然后释放,没有空余的内存消耗。一般不会限制同时连接的个数,这是优势。Message Queue需要建立连接, 支持上千的连接就很吃力了。因为每个连接即使没有在请求数据,也会在内存中占用一定的空间存储。会限制,比如SQL Server数据库服务器,一般最多同时连接16个。
Http协议与TCP协议简单理解,布布扣,bubuko.com
原文地址:http://blog.csdn.net/sundacheng1989/article/details/28239711