gpt4 book ai didi

c# - 当服务器在线或离线时如何使事物交互

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:35 27 4
gpt4 key购买 nike

我对 C# 还很陌生,有人让我给他做一个 Windows 窗体应用程序,您可以在其中查看他们的服务器是在线还是离线。他想让我做一个水族馆,鱼(服务器)在里面游来游去,当它们在线时,当它们离线时,它们只是躺在水面上。但我不知道,谁将这些鱼包括到我的代码中:

 private static bool IsServer1Up(string hostName)
{
bool retVal = false;
try
{
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = true;
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 120;

PingReply reply = pingSender.Send(hostName, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
retVal = true;
}
}
catch (Exception ex)
{
retVal = false;

}
return retVal;
}

这是我想到的。如果你能帮助我,那就太好了

PS:对不起,如果我拼错了什么或者有很多语法错误,我 11 岁,来自德国 :D

最佳答案

我试着让你走上正确的道路。

首先您需要一个代表您的服务器的类。这可能看起来像这样:

class Server
{
public string HostName { get; private set; }
public bool IsOnline { get; private set; }

public Server(string hostName)
{
HostName = hostName;
}

public bool CheckState()
{
IsOnline = YourLogicForChecking(HostName);
return IsOnline;
}
}

在您的应用程序中,您需要初始化所有服务器的集合。假设您知道如何画鱼,那么您可以实现一个方法来做类似的事情。

public void DrawFish(Server s)
{
/* your drawing logic, if server is offline the fish is dead, else it is alive */
}

然后你应该使用一个计时器来更新你的服务器的状态并为每个服务器调用绘图函数。这是您的表单的示例。

public MainForm()
{
InitializeComponent();

Servers = LoadAllServers();
timer.Interval = 1000;
timer.Start();

timer.Tick += Timer_Tick;

}

public void Timer_Tick(object sender, EventArgs e)
{
foreach(var s in Servers)
{
s.CheckState();
DrawFish(s);
}
}

关于c# - 当服务器在线或离线时如何使事物交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41846816/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com