0

MySQL を実行するサーバーが C# モバイルから起動されているかどうかを簡単に確認する方法が必要です。私はソケットで試してみました...非常にゆっくりと!!! …そしてPingクラスはC#モバイルには存在しない

IPHostEntry myHostEntry = Dns.GetHostEntry("192.168.2.222");
IPEndPoint host = new IPEndPoint(myHostEntry.AddressList[0], 3306);

Socket s = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
s.Connect(host);
if (s.Connected) { 
      MessageBox.Show("Ping Ok!!!"); 
} else {
       MessageBox.Show("Ping not Ok !!!");
}

誰か提案はありますか???

4

3 に答える 3

0

MySQLが配置されているサーバーで何らかのスクリプトをホストできる場合は、ローカルMySQLに接続し、成功時に1、失敗時に0を出力する単純なスクリプトを記述します。C#モバイルからHTTPを使用してスクリプトをクエリします。これは、最も信頼できるソリューションです。

于 2012-07-26T10:45:15.633 に答える
0

サーバーは正常に動作している可能性がありますが、「ヘルス チェック」がタイムアウトして、サーバーが停止していると思われる場合があります。一方、サーバーが完全に正常であることがわかり、クエリを続行すると、タイムアウトになります (状況はそれほど異なりません)。

サーバーが稼働していると仮定し、すべてのクエリがタイムアウトする可能性があり、タイムアウトになると仮定して、さまざまな条件を適切に処理することをお勧めします

于 2012-07-26T11:00:47.043 に答える
0

タイムアウトを調整し、dns-resolve を削除します。

IPEndPoint host = new IPEndPoint(IPAddress.Parse("192.168.2.222"), 3306);

Socket s = new Socket(AddressFamily.InterNetwork,
s.ReceiveTimeout = 100;
s.SendTimeout = 100;
SocketType.Stream, ProtocolType.Tcp);
s.Connect(host);
if (s.Connected) { 
      MessageBox.Show("Ping Ok!!!"); 
} else {
       MessageBox.Show("Ping not Ok !!!");
}

ただし、これは高遅延環境 (モバイル ネットワーク) では信頼できない場合があります。

于 2012-07-26T10:51:27.860 に答える