看这个你就明白了
webservice用soap协议,soap协议只是用来封装消息用的。封装后的消息你可以通过各种已有的协议来传输,比如http,tcp/ip,smtp,等等
http://topic.csdn.net/t/20031123/15/2485964.html

解决方案 »

  1.   

    socket是通讯协议,web service是数据协议
    你可以坐火车出门,但是你不能说你是铁路实现的
      

  2.   

    刚才学习了http://www.w3school.com.cn/webservices/ws_use.asp,截下了“华氏、摄氏温度转换”的通讯报文。分析了下,
    我填了摄氏转华氏,500摄氏度,结果是933.8华氏度。下面是交互的数据。
    发送:
    POST http://www.w3schools.com/webservices/tempconvert.asmx/CelsiusToFahrenheit HTTP/1.0..Accept: */*..Referer: http://www.w3school.com.cn/webservices/ws_use.asp..Accept-Language: zh-cn..Content-Type: application/x-www-form-urlencoded..UA-CPU: x86..Proxy-Connection: Keep-Alive..User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; WPS; Maxthon; CIBA)..Pragma: no-cache..Content-Length: 11..Host: www.w3schools.com..Cookie: ASPSESSIONIDACCRBRCA=GMAEHIABLCIJEKEMDDKAPKAM; __utma=119627022.1292411626.1210746833.1210746833.1210749095.2; __utmc=119627022; __utmz=119627022.1210746833.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)....Celsius=501接收:
    HTTP/1.1 200 OK..Via: 1.1 XXXXXXXXXXX..Connection: Keep-Alive..Proxy-Connection: Keep-Alive..Content-Length: 90..Date: Wed, 14 May 2008 08:07:23 GMT..Content-Type: text/xml; charset=utf-8..Server: Microsoft-IIS/6.0..MicrosoftOfficeWebServer: 5.0_Pub..X-Powered-By: ASP.NET..X-AspNet-Version: 2.0.50727..Cache-Control: private, max-age=0....<?xml version="1.0" encoding="utf-8"?>..<string xmlns="http://tempuri.org/">[color=#0000FF]933.8</string>[/color]
    (颜色是我自己加的,为了方便看)就这个温度转换的例子而言,可以看出调用webservice服务并不是“xml”格式化的字符串,服务端返回的包含有“xml”化的数据。这些数据理论上通过socket是可以发送和接收的,但实际上自己生成第一次发送的内容基本上是不可能的,对于接收的内容倒是可以按照关键字进行筛选。karlpan01说的对,我的理解是错误的,不管是对webservice所在层次,还是它和socket的关系。也谢谢jdlsfl,更详细的给我解释,还有jiangsheng。
    对于网络协议这一块,我是很不熟悉,下面对我最初的说法重新来过,还请几位再看看。
    首先webservice可以通过http实现,也可以通过其他很多种协议实现,socket比http更底层,就像人和大便的关系,呵呵。
    webservice如果用http协议来实现的话,那在socket层面上的解释是: 
    客户端调用webservice服务,即是向socket服务端(80端口?)发送一定格式(按照http协议打包?针对501,就会有第一次的数据那么多,想要搞明白,估计还得去研究http协议,对我是不可能的任务了)的字符串,然后在本次socket连接中接收服务端返回的字符串(字符串是将webservice处理产生的的实际内容“933.8”经过soap协议打包,即按照xml格式处理,也就是标红的部分,然后再经http协议处理(又包了一层网络通讯需要的内容,不过这和soap打包的性质不一样,soap是在数据内容层面上加上xml的格式),形成最终收到内容)
      

  3.   

    更正下,上面应该是:
    接收: 
    HTTP/1.1 200 OK..Via: 1.1 XXXXXXXXXXX..Connection: Keep-Alive..Proxy-Connection: Keep-Alive..Content-Length: 90..Date: Wed, 14 May 2008 08:07:23 GMT..Content-Type: text/xml; charset=utf-8..Server: Microsoft-IIS/6.0..MicrosoftOfficeWebServer: 5.0_Pub..X-Powered-By: ASP.NET..X-AspNet-Version: 2.0.50727..Cache-Control: private, max-age=0.... <?xml version="1.0" encoding="utf-8"?>.. <string xmlns="http://tempuri.org/">933.8 </string>