不具合修正版でやんす。よーやく謎が解けました。
Download
まず、サーバー側にモニターを未接続の状態で画面の更新がなくなると暫くして切断されてしまう不具合を修正しました。具体的には、モニターが未接続だと画面の更新がなかった場合にDuplication Desktop API(DDA)がタイムアウトしか返さないよーでして、Verethragnaはキャプチャー周期が短いためDDAからタイムアウトが返ってくることも想定しており、もしタイムアウトされた場合は画面を送信しない仕様だったのですが、タイムアウトしかこない場合は画面の送信が全く行われず、その結果通信側もタイムアウトしてしまう状態になってしまってました。ですので、DDAがタイムアウトし続けた場合は空のデータを一定周期で送信するようにしました。また、クライアント側では画面のデータを受信しないとウィンドウのサイズ変更などの際に画面が崩れる仕様でしたので、こちらもタイムアウト発生中の場合は前回の画面のデータを利用してウィンドウのサイズ変更するようしました。この辺はまだ改良の余地がありそうですがあまり他の処理速度に影響を与えないようにする必要があるのでじっくりやろーかなと考えている次第でございます。すんませんでした。
次に、接続中はサーバー側のスクリーンセーバーやスクリーンアウトやスリープなどが実行されないようにしました。
あと、細かな微調整とかコメント修正とかいらないとこ削除とかやってます。
そんなとこですよろしくどうぞー。