WCF客户端可以关闭与服务的链接吗,让软件也可以照常运用,现有的只有打包好的软件和配置文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WCF客户端可以关闭与服务的链接吗,让软件也可以照常运用,现有的只有打包好的软件和配置文件相关的知识,希望对你有一定的参考价值。
我有个软件,.net的,由于涉及到个人信息,想问下能不能关闭五服务之间的WCF,能不能通过修改WCF的配置文件修改?怎么修改?
参考技术A 这种客户端软件关了服务的连接没法运行的.因为一般这样的软件所有业务行为都是有服务器实现的,客户端只是一个交互工具,关了服务连接怎么用呀.c# WCF 可以像socket那样监听吗?
能给几句监听的代码或者简单的例子吗?谢谢了
服务器和客户端通信是怎么实现的?
WCF你能用UDP协议吗?
namespace WCFChatService
class Program
static void Main(string[] args)
NetTcpBinding bind = new NetTcpBinding();
Uri uri = new Uri(ConfigurationManager.AppSettings["conAddress"]);//从配置文件中读取服务的Url
ServiceHost host = new ServiceHost(typeof(WCFChatService.ChatService), uri);
host.Open();
Console.WriteLine("聊天室服务器开始监听: endpoint 0", uri.ToString());
Console.WriteLine("按 ENTER 停止服务器监听...");
Console.ReadLine();
host.Abort();
host.Close();
WCF的通信程序也是要分客户端和服务器端得,和socket的通信方式比较类似。
WCF中有个绑定的概念,描述了服务传输的通信方式,使用绑定可以指定:传输的协议,安全要求,编码方式,事务处理要求,可靠性等。现有的绑定中,没有支持UDP协议的,主要以TCP和HTTP为主。 参考技术A // 启动线程 启动监听按钮
private void button1_Click(object sender, EventArgs e)
Thread th = new Thread(new ThreadStart(handleSc));
th.IsBackground = true;
th.Start();
private void handleSc()
int port = 8080;
port = System.Convert.ToInt32(strSPort);
string hostIp = "127.0.0.1";
hostIp = textBox4.Text;
IPAddress ip = IPAddress.Parse(hostIp);
IPEndPoint ipe = new IPEndPoint(ip, port);
Socket recvSocket = null;
Socket sS = null;
while (true)
try
// 创建一个Socket类
sS = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 绑定端口
sS.Bind(ipe);
sS.ReceiveTimeout = INT_TIMEOUT;
// 开始监听
sS.Listen(0);
// 为新建连接创建新的Socket
recvSocket = sS.Accept();
............
catch(...)
.....
参考技术B <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JavaScript事件监听完整实例(含注释)</title>
<meta name="generator" content="editplus" />
<meta name="Keywords" content="AddEventHandler,addEventListener,attachEvent,appendChild,getElementsByTagNamem,createElement,createTextNode,IE与FF兼容性,JavaScript事件,JavaScript监听">
<script type="text/javascript">
var oEventUtil = new Object();
oEventUtil.AddEventHandler = function(oTarget,sEventType,fnHandler)
//IE和FF的兼容性处理
//如果是FF
if(oTarget.addEventListener)
oTarget.addEventListener(sEventType,fnHandler,false);
//如果是IE
else if(oTarget.attachEvent)
oTarget.attachEvent('on'+sEventType,fnHandler);
else
oTarget['on'+sEventType] = fnHandler;
;
//定义oT事件函数
var oT = function()
var oEvent = arguments[0];
var oTarget = oEvent.target || oEvent.srcElement;
alert(oTarget.tagName+'\n'+oTarget.innerHTML+'\n'+oEvent.type);
//页面加载时制造36个p,每个p里面显示的文字是Line + i
window.onload = function()
for(var i = 0;i<36;i++)
var oP = document.createElement('p');
var oText = document.createTextNode('Line'+i);
oP.appendChild(oText);
//在文档的第一个div里面添加这些p
document.getElementsByTagName('div')[0].appendChild(oP);
//找到所有的p,并添加click的事件监听
var oPList = document.getElementsByTagName('p');
for(var i = 0;i<oPList.length;i++)
oEventUtil.AddEventHandler(oPList[i],'click',oT);
</script>
<style type="text/css">
*
margin:0px;
padding:0px;
div
margin:10px auto;
width:690px;
border:solid 1px #000;
min-height:600px;
padding:20px;
div p
padding:4px;
margin-left:4px;
margin-top:4px;
border:solid 1px blue;
width:100px;
float:left;
pre
margin:20px 0 0 0;
a
text-indent:4em;
</style>
</head>
<body >
<div>
</div>
</body>
</html>
这个看看行不行 够不够你满足
怎么实现的问题:
可以向下这样的情景:
假如有三台机器:A、B、C
A是web服务器 B是一个客户机 C是另一个客户机
B通过浏览器向A发送了Data,而A又把这个Data发给C
C在登陆时同时开一个端口进行检听A的消息.此时A记录C登陆状态和IP
当B登陆时,A根据帐号信息查看登陆状态,如果已登陆,则通过先前保留的IP发送消息至C处理
web服务器与桌面客户端通信可以通过socket做到
WCF的Tcp Listener只处理符合NET message framing protocol的tcp请求.
还是用Socket吧! 参考技术C 像scoket 那样是不可能的,你可以二者结合使用本回答被提问者采纳
以上是关于WCF客户端可以关闭与服务的链接吗,让软件也可以照常运用,现有的只有打包好的软件和配置文件的主要内容,如果未能解决你的问题,请参考以下文章