C#如何实现一个客户端连接多个服务器

behboyhiex 2017-06-05 10:22:42
例如5台服务器,怎样定时循环读取数据,服务器的IP和端口都保存在数据库中,代码怎么写
...全文
823 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
圣殿骑士18 2019-02-25
  • 打赏
  • 举报
回复
例如5台服务器,怎样定时循环读取数据,服务器的IP和端口都保存在数据库中,代码怎么写

===
你至少得有一些语言基础,以及想法吧。比如:
1、你会从数据库取数据
2、你会用Timer实现定时器执行

如果这两个都会,那就不用问了。所以方案其实不复杂,你这么问题,有可能是技术基础都还不具备。

==========
欢迎关注微信公众号 “产品技术知与行” ,打造全面的结构化知识库,包括原创文章、免费课程(C#,Java,Js)、技术专题、视野知识、源码下载等内容。
最新文章:解读经典《C#高级编程》 第四章之继承.接口 https://mp.weixin.qq.com/s/fO4C0WAYZUJYEvKJiBCuVA
BaiZiHua_Shin 2019-02-25
  • 打赏
  • 举报
回复
//1.获取服务器IP:
Request.ServerVariables.Get("Demo_Ipa1").ToString();
Request.ServerVariables.Get("Demo_Ipa2").ToString();
Request.ServerVariables.Get("Demo_Ipa3").ToString();
Request.ServerVariables.Get("Demo_Ipa4").ToString();
Request.ServerVariables.Get("Demo_Ipa5").ToString();

//2、获取服务器名:
Request.ServerVariables.Get("Server_Name1").ToString();
Request.ServerVariables.Get("Server_Name2").ToString();
Request.ServerVariables.Get("Server_Name3").ToString();
Request.ServerVariables.Get("Server_Name4").ToString();
Request.ServerVariables.Get("Server_Name5").ToString();
//3.连接
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp);
serverSocket.Bind(new IPEndPoint(Demo_Ipa1, Demo_Prot1)); //绑定IP地址:端口
……
serverSocket.Bind(new IPEndPoint(Demo_Ipa5, Demo_Prot5)); //绑定IP地址:端口
serverSocket.Listen(5);//设定5个排队连接请求
//4.服务端连接成功
Server myServer = (Server)server;
myServer.clientSocket = serverSocket.Accept();//线程在此等待,直到有客户端连接后方继续执行
myServer.clientSocket.Send(Encoding.UTF8.GetBytes("连接成功"));
Thread receiveThread = new Thread(ReceiveMessage);//启动接收信息线程
receiveThread.Start(server);
//5.客户端连接
clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); int connPort = Int16.Parse(textBox_serverPort.Text);
clientSocket.Connect(new IPEndPoint(ip, connPort)); //配置服务器IP与端口
writeLog("连接服务器成功");
button_createConn.Text = "断开连接"; //开启监听线程
receiveThread = new Thread(receiveMsg);
receiveThread.Start(this);
//6.web服务
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class BaseSQLService : System.Web.Services.WebService
//7.数据访问层
mConn = string.Format("Data Source={0};Initial Catalog={1};User ID={2};Password={3};", sServerIP, sDataSource, sUser, sPsw);
sSQL1 = String.Format("SELECT * FROM dbo.suser WHERE suser_id='" + tCcsUser + "' AND suser_pass='" + tCcsPsw + "' and 1=1 ");
sSQLnI= String.Format("SELECT * FROM dbo.suser WHERE suser_id='" + tCcsUser + "' AND suser_pass='" + tCcsPsw + "' and 1=1 ");

BaiZiHua_Shin 2019-02-25
  • 打赏
  • 举报
回复
//1.获取服务器IP:
Request.ServerVariables.Get("Demo_Ipa1").ToString();
Request.ServerVariables.Get("Demo_Ipa1").ToString();
Request.ServerVariables.Get("Demo_Ipa1").ToString();

//2、获取服务器名:
Request.ServerVariables.Get("Server_Name").ToString();
北京.NET 2019-02-25
  • 打赏
  • 举报
回复 1
Timer定时器,设定好时间触发

触发内容
{
1.查询数据,获取IP 端口 存入LIST或则
数组变量


2.for 循环服务器列表
{
查询内容
}
}
_小黑_ 2019-02-25
  • 打赏
  • 举报
回复
循环读取5个服务器的数据 把没读取到数据的服务器 记录下来,之后在循环这个记录
本人QQ-554433626 2017-06-06
  • 打赏
  • 举报
回复
TcpClient
bloodish 2017-06-06
  • 打赏
  • 举报
回复
好开放性的问题,而且直接要代码,爱莫能助
正怒月神 2017-06-06
  • 打赏
  • 举报
回复
我觉得在一个服务器,跑一个视图,或者存储过程去访问5台机器。 这样比较方便。
by_封爱 版主 2017-06-06
  • 打赏
  • 举报
回复
会读取数据库吗? 会建立远程链接吗? 复制5份 改个名字 会吗? 你到底会什么?

110,539

社区成员

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

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

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