防止一台服务端不安全,想提供多台服务器端socket问题!很快揭帖!

showmetoyou 2006-03-15 05:30:58
我在两台机器上都提供Socket服务器端程序,
我客户端程序想如果第一台挂掉,客户端就连第二台!如下写法:

_sockC = new SocketClient(); //SocketClient为Socket客户端的构造类,构造函数里没做什么事
this._ServerIp =“192.168.0.3”;
this._Port = this._Port1;
_sockC.Connect(this._ServerIp,this._Port,_TimeOut);//Connect为SocketClient类中的一个方法
if(!_sockC.Connected)
{
_log.Writeline("Connect Remote Server Fail:"+this._ServerIp);
//更换服务2地址,端口

this._ServerIp = =“192.168.0.4”;
this._Port = this._Port2;
_sockC.Connect(this._ServerIp,this._Port,_TimeOut);
if(!_sockC.Connected)
{
_log.Writeline("Connect Remote Server Fail:"+this._ServerIp);
return;

}

现在发生奇怪问题,
如果3端服务开启,4端服务不管开启还是关闭,都是连接成功的!
如果3端服务关闭,4端开启,它就报两个连接都不成功。

server2端服务是没有问题的!
因为我把程序中的“192.168.0.3”,“192.168.0.4”互换,即先检查4是否可以连接时,
如果4端服务开启,3端服务不管开启还是关闭,都是连接成功的!
如果4端服务关闭,3端服务开启都是连接成功的!它就报两个连接都不成功。

问题怪就怪在,如果查询的第一个是失败的,后面一个一定也返回连接失败!没有达到设计目的

请高手指点一下!问题可能出在哪?很快揭帖!
...全文
108 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
showmetoyou 2006-03-22
  • 打赏
  • 举报
回复
恩!好方法!
nuelaleo 2006-03-16
  • 打赏
  • 举报
回复
我是把服务器的IP放在XML里,然后读到一个ArrayList(ServerList)里头,然后对这个数组进行循环。我的代码如下:
//===========属性用来判断Socket是否处于连接状态===============================
public bool P_Connected
{
  get
  {
    if(m_ClientSocket != null && m_ClientSocket.Connected)
    {
 return true;
}
else
{
  return false;
}
  }
}
//=========对外公布的方法===============================
public bool F_Connect()
{
try
{
if(P_Connected)
{
return true;
}
else
{
for(int i = 0; i < ServerList.Count; i++)
{
if(F_Connect(i))
{
return true;
}
else
{
continue;
}
}

return false;

}
}
catch(Exception ex)
{
return false;
}

//========================================================
private bool F_Connect(int _ServerId)
{
  try
  {
if(_ServerId >= 0 && _ServerId <= ServerList.Count)
{
    m_ServerIpAddress = (IPAddress)ServerList[_ServerId];

  if( F_ProcessConnect() ) //此方法进行连接,成功返回true,失败返回false
  {
return true;
  }
  else
  {
  return false;
  }
}
else
{
  return false;
}
  }
  catch(Exception ex)
  {
return false;
  }
}
showmetoyou 2006-03-15
  • 打赏
  • 举报
回复
server2端服务就是指192.168.0.4

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧