我用Remoting建立客户端与服务端的通信。我发现一个现象,如果服务端没启动或网络有问题的话,造成客户端连接不上服务端,之后,如果启动了服务端,
客户端再次连接,总是连接不上,只有退出客户端,重启一次客户端,才能连上服务端。请问这种现象怎么解决?让客户端不退出,即在服务端启动后就可以连接上。
客户端再次连接,总是连接不上,只有退出客户端,重启一次客户端,才能连上服务端。请问这种现象怎么解决?让客户端不退出,即在服务端启动后就可以连接上。
调试欢乐多
所以出现你那个问题是正常的,只能先开服务器端,再开客户端,或者保障2者都开了再进行连接。
重新new一个,并注册
声明一下,我是用ChannelServices.UnregisterChannel移除的,不知是否正确.
Remoting本来就得先启动服务端,再启动客户端的。这也符合应用上的逻辑啊。
你可以把服务端做成windows服务,开机启动自动启动服务。就避免了先启动客户端这种情况。
IChannel[] channels = ChannelServices.RegisteredChannels; //关闭指定名为MyTcp的通道;
foreach (IChannel eachChannel in channels)
{
if (eachChannel.ChannelName == "MyTcp")
{
TcpChannel tcpChannel = (TcpChannel)eachChannel; //关闭监听;
tcpChannel.StopListening(null); //注销通道;
ChannelServices.UnregisterChannel(tcpChannel);
}
}