防止一台服务端不安全,想提供多台服务器端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端服务开启都是连接成功的!它就报两个连接都不成功。

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

请高手指点一下!问题可能出在哪?很快揭帖!
...全文
147 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
SQL实战进阶完整课程资源,面向已经掌握SELECT、INSERT、UPDATE、DELETE等基础语法,希望进一步提升复杂SQL编写、业务数据分析和数据库性能优化能力的学习者。 课程以MySQL 8+为主要实战环境,从真实业务问题出发,由浅入深讲解多表JOIN、GROUP BY复杂聚合、子查询、EXISTS、CTE公共表表达式、窗口函数、TopN排名、累计统计、环比分析、移动平均、用户留存、转化漏斗等常见进阶SQL场景。 性能优化部分详细讲解B+Tree索引原理、单列索引、联合索引、最左前缀、覆盖索引、回表、ORDER BY排序优化、EXPLAIN执行计划、EXPLAIN ANALYZE、慢SQL定位与改写、深分页优化、事务、隔离级别、锁等待及常见并发问题。 资源包含完整课程文档、13张SQL原理图解、可直接执行的MySQL建表与初始化数据、多个业务案例SQL、Docker Compose本地学习环境、大数据量测试脚本、52道SQL进阶练习题及详细答案,并提供完整电商订单经营分析综合项目。 课程重点不是简单堆SQL语法,而是讲清楚每条SQL为什么这样写、JOIN后为什么会重复统计、索引为什么有效、SQL为什么变慢、如何阅读执行计划以及如何验证优化效果。 适合Java/Go/Python/PHP后端开发、数据库学习、数据分析、SQL进阶、MySQL性能优化、面试复习以及实际项目开发使用。

111,129

社区成员

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

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

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