日期:2014-05-17  浏览次数:20361 次

在使用WCF的过程中,是不是在底层一定会建立Socket通信
在使用WCF的过程中,是不是在底层一定会建立Socket通信。如果WCF服务端和客户端在网络的不同机器上,这个很好理解,一定会建立Socket通信,使用http协议。而如果WCF服务端和客户端在同一台机器上的话,客户端引用服务端的服务时,IP地址就会是127.0.0.1,这样还会进行Socket通信吗?我个人觉得是要进行的,因为客户端和服务端是处在不同的进程之间。

而最近在学习EJB的过程中,发现这样一个问题。当服务端与客户端在不同机器上的时候,需要进行Socket通信。而如果处于同一个机器的同一个Jboss的时候,就不需要进行网络通信,直接通过内存进行通信。那,这服务器端和客户端应该是在不同的进程吧,怎么进行通信呢
------解决方案--------------------

表示不知道,只会用 tcp/ip来通信,没听说过他底层使用socket。
楼下大神怎么说
------解决方案--------------------
不是太懂你问什么。

一个程序中可以这样写
if(使用命名管道连接成功)
    使用命名管道管道();
else if(使用udp连接成功)
    使用udp();
else if(使用tcp连接成功)
   使用tcp连接();
else if(支持MSMQ)
   使用MSMQ();
else if(支持发邮件)
   使用邮件系统通讯();
else
   throw new Exception("网络不通!"); 
这也就行了。这有什么可奇怪的呢?

至于每一种通讯方法,你需要单独去学习。不要以为只能有A方法,就不允许B方法了。编程不要讲什么技术是非,而是以用户能够方便使用为标准。