[解決済み] C# ホストマシンのソフトウェアによって確立された接続が中止された
質問内容
私のゲームサーバーで、このエラーが頻繁に起こるようになりました。サーバーの終了と再起動を繰り返しています。
System.Net.Sockets.SocketException (0x80004005): An established connection was aborted by the software in your host machine
at System.Net.Sockets.Socket.BeginSend(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
at iRP.Game.Sessions.Session.SendData(Byte[] Data)
これは、これらのエラーが発生するコードです。
public void SendData(byte[] Data)
{
try
{
if (mSocket == null)
{
//Output.WriteLine("[SND] Socket has a null exception, which means it is now invalid. Remove this socket!", OutputLevel.CriticalError);
}
else
{
mSocket.BeginSend(Data, 0, Data.Length, SocketFlags.None, sendCallback, mSocket);
}
}
catch (Exception e)
{
string WhatToWrite = "Error handled (SESSION): " + e.ToString() + "\n\n" + e.Message + "\n\nStack: " + e.StackTrace + Environment.NewLine + "\n\n";
File.AppendAllText(Environment.CurrentDirectory + "\\data\\fatal.txt", WhatToWrite);
Program.Stop();
}
}
バッファサイズは正しく設定されており、ソケットでKeepAliveを使用し、送信タイムアウトと受信タイムアウトを使用していました。
ファイアウォールを無効にすると良いという意見がありましたが、これを実行するとゲームサーバー(専用サーバー)が攻撃を受けているかのように再起動するので、ファイアウォールは有効なままでなければなりません。
どなたか他の解決策をお持ちの方はいらっしゃいませんか?
追記: DDoS緩和サービスの背後にいるため、接続数を制限している可能性があります。
解決するには?
<ブロッククオート確立された接続が、ホストマシンのソフトウェアによって中断された
これは定型のエラーメッセージで、Windowsから出力されます。 基本的なエラーコードはWSAECONNABORTEDです。 これは、「接続が中断されました」以上の意味を持ちません。 このフレーズの"your host machine"の部分には、少し注意が必要です。 Windowsアプリケーションプログラムの大部分において、接続を中断したのは、デスクトップアプリケーションが接続されているホストであることは確かです。 通常、どこかのサーバーです。
しかし、自分でサーバーを導入した場合は、役割が逆転します。 この場合、エラーメッセージは「相手側のアプリケーションによって中断された」と解釈する必要があります。 もちろん、サーバーを実装した場合、サーバーを使用するクライアントプログラムが何らかの理由で接続を中断することは珍しいことではありません。 それは できる ファイアウォールやプロキシが接続を終了させたということですが、そもそも接続を許可していないのが普通なので、その可能性はあまりありません。
接続が中断された理由は、相手側で何が起こっているのかを把握しない限り、本当のところはわかりません。 もちろん、それを知ることは困難です。 もし、あなたのサーバーがインターネット経由で到達可能なら、ポートスキャナによって探査されている可能性を無視してはいけません。 あるいは、ゲームのチートを探している顧客かもしれない。
関連
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない
-
[解決済み] リクエストは中断されました。SSL/TLSセキュアチャネルを作成できませんでした
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】既存の接続がリモートホストによって強制的に切断されました。