マンガでよめる痔のこと・薬のこと

大学のほうでサーバーの仮想マシンにアクセスすための、シンクライアントシステムのサーバーソフトとクライアントソフトを開発することになったのですが、今までプログラム開発など大学の講義で軽く学んだに過ぎません。
GoogleやYahoo!を使ってリモートデスクトップソフトの作り方や参考書籍がないのか探しては見たのですが、リモートデスクトップ環境ですを構築したなどの資料ばかりでどうにも見つかりません。
開発言語は出来ればC言語を使用したいと考えているのですが、リモートデスクトップソフトの製作記や作り方が乗っているホームページまたは本をご存知でしたら教えてください。

ちなみに教授のご希望はWindows用ではなくMac、Linuxでも使えるマルチOS仕様+物理PCを使っているのと遜色ないレベルで画面転送できるソフトなのですが、まぁこれは無視してくださって構いません。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

それ用の書籍と言うより、OSとデバイス通信の書籍を調べた方が良いと思います。



それにリモートとおっしゃっているのが、画面転送を意味するのか、特定のアプリケーションをリモートメモリで使用するのかでも違うと思います。

Windowsについているリモートは仮想ディスクトップ形式で、画面転送ではありません。Windowsならその辺の機能がモジュール化されており、かなり簡単に同じ事が出来ます。

しかしこれはPCの立ち上げまではサポート出来ない、あくまでもWindowsの機能です。
本来はバイオス画面まで転送するものをリモートとするものが正規の物。デバイスの通信を転送する技術が必要です。

ひとつのサーバーに複数の環境を想定するならば、仮想デバイスを経由した転送に成るかと思いますが。このようなものは出回っているので、Linax関連のオープンソースなどのサイトにあるかもしれません。

この回答への補足

説明不足で申し訳ありません、リモートは特定アプリケーションではなく画面転送を意味しています。

補足日時:2011/05/19 10:17
    • good
    • 0

まぁ参考にするならVNCになるんじゃないかな?



Virtual Network Computing
http://ja.wikipedia.org/wiki/Virtual_Network_Com …

初期バージョンはソースがGPLライセンスで公開されているから、参考書なんかよりも実践的で具体的。

このソースをみて分からんなら質問されている事自体が不可能レベルと思います。

まぁ一から開発する事が勉強と言う側面もあるでしょうから無駄と言い難いけど手段と目的が入れ替わってしまわない様に先達の知恵は有効利用した方が得策でしょう。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q組み込み系と制御系の違いは?

SE/PGの求人で、組み込み系、制御系を見ますが、
組み込みとは、家電製品などに組み込み、使用者が家電製品を使うときに操作したとおりに動くようにプログラムをつくるエンジニアのことでしょうか?

制御系はどういたことなんでしょうか?
制御とついているので制御するのだと思うのですが、使われる箇所としてはどういった所に使われるのでしょうか?

さっきの組み込み系でも、家電製品に”組み込ん”でも、”制御”もされているのではないでしょうか?
例えば、電子ジャーに”組み込ん”でも、温度調節なども”制御”しているのではないでしょうか?

組み込みと制御は同じような事なのでしょうか?

Aベストアンサー

○○系という言葉自体が広い概念ですので、たしかに重複する意味もありますが。
元々、系列化するものに対して○○系として区別していました。
対象が同じものであっても言い方で混乱しますね。
結論を簡単に言えば、表現の方法の違いなのですが、
1)主機能面から言えば、○○制御系
  (背景には、複雑・多様化、ネットワーク化、ユビキタス、インフラなどの課題が多い)
2)機器内部にコンピュータシステムを組み込むための技術力、対応力を強調させる場合は、組み込み系。(背景には、小型化、省電力、高速化などの課題が多い)

で、SE/PG求人ということなので、「ソフトウェア開発」に絞られます。
一般には、制御系システムの方が範囲が広く、以下のように使われるケースがあります。
「...制御系のシステム(計測・制御用ソフト、組み込み用ソフト、FA用ソフト)の開発経験者を求む....」

一般的には、
組み込み系システムとは、
 昨今の家電・電子機器・自動車(etc.)には、機器を制御するためのマイコン用ソフト・ハードが組み込まれて内蔵されている。その機器内部のコンピュータシステムを指す。組み込み系ソフトとは、機器内部のコンピュータシステムを稼動させるソフトウェアで、組み込み系システム用に開発されたソフトウェアのこと。組み込み系に対しては、PC系・UNIX系と言ったりする。機器の外部にコンピュータを接続する形式が「非組み込み系」と考えてよい。システムの構築の際、形態・方法を指す言葉。したがって、電子ジャーは、組み込み系システムであるとは言えます。

一方、制御系システムとは、広義には、機器を「制御する」システムを対象とする。狭義には、特に制御が主機能になっているものを指す。ここでの「制御系」の概念は、「組み込み系」であっても「非組み込み系」であっても構わない。すなわち、システム構築の目的や用途(機能)を強く意識した言葉。したがって、電子ジャー(炊飯)などの特定の狭い用途で主機能ではない場合には、使いません。自動車のカーナビ(位置特定)なども。敢えて「制御」を使うならば、電子ジャーの温度制御ソフトのように使われる。


制御系の実例的には
主な制御系         具体的システム例       ソフトの対象例
監視・制御系        中央監視盤、照明制御システム 制御端末用ソフト
FA系           製造ライン監視制御システム  PLC用ソフト
プロセス制御系       製鉄プラントシステム
通信・制御系        移動体通信制御システム    携帯電話、基地局
計測・制御系        排ガス濃度監視装置      濃度計測、ロギング
組み込み・制御系      DVDプレーヤシステム     モーター回転数制御
「DVDプレーヤ」では、単に「制御系」とは普通言わない。
「組み込み・制御系」もしくは単に「組み込み系」。

納得がいかないなら、「制御系」などで検索し、
ターゲットの実例を調べてください。

参考にされば、幸いです。

○○系という言葉自体が広い概念ですので、たしかに重複する意味もありますが。
元々、系列化するものに対して○○系として区別していました。
対象が同じものであっても言い方で混乱しますね。
結論を簡単に言えば、表現の方法の違いなのですが、
1)主機能面から言えば、○○制御系
  (背景には、複雑・多様化、ネットワーク化、ユビキタス、インフラなどの課題が多い)
2)機器内部にコンピュータシステムを組み込むための技術力、対応力を強調させる場合は、組み込み系。(背景には、小型化、省電力、高...続きを読む

Qファイルやディレクトリの存在確認を行う方法

ファイルをオープンするのはfopenでOKですが、ファイルやディレクトリの存在確認を行う方法が知りたいです。

何か組み合わせて作るものなのでしょうか?
perlとか便利な演算子があるのですが、C/C++って器用ではないですね。
これは処理系?依存の内容ですか?

私の環境は VC6, VC2005 Windows2000です。

Aベストアンサー

int access(const char* path, int mode);
int stat(const char* path, struct stat* sb);

かな?
MSDN を引くと _access_s() を使えとか書いてあるけど。

QWin7でアクセスを拒否されました」が表示される

モノ好きでPCをXPからWindows7に移った(現在併行)のですが、操作に右往左往しています。
そのうちの一つ。
ドキュメントにしろあちこちで「アクセス拒否されました」と言われ中身を見ることが出来ません。
例えば、ライブラリのドキュメントの中のマイドキュメント、My Weblog。
パブリックのドキュメント
ホームグループの中のcookies,MyDocument,スタートメニュー等々です。
見られる処もあります。
保存した先を見つけられない現象が度々あり困っています。XPではエクスプローラーでフォルダーをたどるとほとんど見られました。
W7に於いて、隠しファイルは別にしても、XPの時のように自由に見られるようにするにはどうしたら良いのでしょうか。ご助言をお願い致します。

Aベストアンサー

おはようございます。

アクセス拒否は、

(1) 最初に管理者権限のあるユーザーでログインします
(2) フォルダーを右クリックし、プロパティを選択。
(3) セキュリティタブをクリック、下の詳細設定をクリック。
(4) 所有者タブをクリック、編集をクリックし一覧から
新しい所有者(Administrators権限のあるアカウント)を選択し、
「サブコンテナとオブジェクトの所有権を置き換える」にチェックしてOKをクリック。
(5)「内容を読み取るのに必要なアクセス許可がありません。
デェレクトリの云々」というメッセージが表示されたら「はい」をクリックでOK。


エクスプローラーでツリー状に展開するには

(1)フォルダを開き左上にある整理をクリック→
プルダウンメニューのレイアウトの
ナヴィゲーションウィンドウにチェック

(2)コントロールパネルからフォルダーオプションをクリック、
全般タブのナビゲーションウインドウの
自動的に現在のフォルダーまで展開するにチェックを入れればOKです。


7はスタートメニューの「プログラムとファイルの検索」とタスクバーにショートカットが
使い勝手が良くて気に入っています。

おはようございます。

アクセス拒否は、

(1) 最初に管理者権限のあるユーザーでログインします
(2) フォルダーを右クリックし、プロパティを選択。
(3) セキュリティタブをクリック、下の詳細設定をクリック。
(4) 所有者タブをクリック、編集をクリックし一覧から
新しい所有者(Administrators権限のあるアカウント)を選択し、
「サブコンテナとオブジェクトの所有権を置き換える」にチェックしてOKをクリック。
(5)「内容を読み取るのに必要なアクセス許可がありません。
デェレクトリの云々」というメッセー...続きを読む

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

Qリモートデスクトップの接続元IPアドレス

現在Windowsのログオン画面のカスタマイズを検討しております。

で、カスタマイズしたログオン画面がローカルからの起動されたのか
リモートデスクトップからの起動かは「GetSystemMetrics(SM_REMOTESESSION)」を
用いて判別できました。

次にリモートデスクトップから起動された場合、接続元のIPアドレスを
判別したいのですが、IPアドレスを取得する方法はあるのでしょうか?


環境:OS=Windows7 Pro
   :VisualStudio2005 (VC++ or VB)

Aベストアンサー

WTSQuerySessionInformation
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383838(v=vs.85).aspx
にWTSClientAddressを渡すことで取得できます。
*ppBufferをWTS_CLIENT_ADDRESS *にキャスとして使います。
なお,WTS_CLIENT_ADDRESS::Addressの先頭2バイトは読み飛ばす必要があるみたいです。
ちなみに,TS接続でなくてもAPI呼び出しは成功しますが,AddressFamilyが0なので,GetSystemMetricsを使わずに判断できそうです。

なお,AF_INETはWindows.h(というかWinSock.h)で定義されていますが,
AF_INET6はWinSock2.hをインクルードしておく必要があります。
Windows 7だと,リンクローカルIPv6アドレスで接続している可能性がありますので,
IPv6の可能性は捨てない方が良いです。

---- 以下,適当サンプル ----
#define _CRT_SECURE_NO_WARNINGS

#include <cstdio>
#include <cstring>
#include <WinSock2.h>
#include <Windows.h>
#include <WtsApi32.h>

#pragma comment(lib, "WtsApi32")

int main (void)
{
LPTSTR pBuffer;
DWORD bytesReturned;

if (!WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSClientAddress, &pBuffer, &bytesReturned))
{
return ::GetLastError();
}

const WTS_CLIENT_ADDRESS & addr = *reinterpret_cast<WTS_CLIENT_ADDRESS *>(pBuffer);

char message[512];
switch (addr.AddressFamily)
{
case AF_INET:
std::sprintf(message, "IPv4 : %d.%d.%d.%d", addr.Address[2], addr.Address[3], addr.Address[4], addr.Address[5]);
break;
case AF_INET6:
std::sprintf(message, "IPv6 : %x:%x:%x:%x:%x:%x:%x:%x",
addr.Address[2] << 8 | addr.Address[3],
addr.Address[4] << 8 | addr.Address[5],
addr.Address[6] << 8 | addr.Address[7],
addr.Address[8] << 8 | addr.Address[9],
addr.Address[10] << 8 | addr.Address[11],
addr.Address[12] << 8 | addr.Address[13],
addr.Address[14] << 8 | addr.Address[15],
addr.Address[16] << 8 | addr.Address[17]);
break;
case AF_IPX:
std::strcpy(message, "IPX");
break;
case AF_NETBIOS:
std::strcpy(message, "NETBIOS");
break;
default:
std::strcpy(message, "unknown");
break;
}
std::puts(message);

return 0;
}

WTSQuerySessionInformation
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383838(v=vs.85).aspx
にWTSClientAddressを渡すことで取得できます。
*ppBufferをWTS_CLIENT_ADDRESS *にキャスとして使います。
なお,WTS_CLIENT_ADDRESS::Addressの先頭2バイトは読み飛ばす必要があるみたいです。
ちなみに,TS接続でなくてもAPI呼び出しは成功しますが,AddressFamilyが0なので,GetSystemMetricsを使わずに判断できそうです。

なお,AF_INETはWindows.h(というかWinSock.h)で定義されていますが,
...続きを読む

QVB上で実行中の無限ループの止め方

今まで、CUIベースのBASICでのプログラムの経験はあるのですが
Visual系のBASICは初心者です。
原因はわかっているのでプログラムの修正はできるのですが
VB上でコンパイルして実行したときに無限ループに陥ってしまって
どうにもプログラムをとめられなくなります。
そんなことがないように、実行前に全てのプロジェクトを保存して
いますので、そんなに実害はないのですが、どうすればとめられるのでしょう・・
今現在は、タスクマネージャーから強制終了させています。

Aベストアンサー

無限ループの一番内側に
DoEvents
を入れておくと、ウィンドウ切替え->デバッガ終了操作が出来ますよ

危なそうなとこにも入れておくと、何かと安心です。

Q「いずれか」と「いづれか」どっちが正しい!?

教えて下さいっ!
”どちらか”と言う意味の「いずれか」のかな表記として
「いずれか」と「いづれか」のどちらが正しいのでしょう???

私は「いずれか」だと思うんですが、辞書に「いずれか・いづ--。」と書いてあり、???になってしまいました。
どちらでもいいってことでしょうか?

Aベストアンサー

「いずれか」が正しいです.
「いづれ」は「いずれ」の歴史的かな遣いですので,昔は「いづれ」が使われていましたが,現代では「いずれ」で統一することになっていますので,「いずれ」が正しいです.

Qある文字列が全て数字であるかどうかをチェックするには?

一番効率のよいと思われる方法を教えて下さい。
一つ一つ数字であるか見る方法しか思いつきません。

Aベストアンサー

Sub test01()
Dim a As String
a = InputBox("数=")
For i = 1 To Len(a)
If Asc(Mid(a, i, 1)) < 48 Or Asc(Mid(a, i, 1)) > 57 Then
MsgBox i & "字目でNon-Numeric"
Exit For
End If
Next i
End Sub

QVB.NETでフォームがない状態でキー入力を受け付けたいです。

VB.NETなのですが、Visible=Falseでフォームを見えないようにして
他のアプリを使用中でもキー入力を受け付けて、
そのキーに応じた動作をするプログラムを考えているのですが、
フォームがない状態でキーを受け付けるということはできるでしょうか?
大まかな方法でもかまいませんので、教えて頂きたいです。
よろしくおねがいします。m(__)m

Aベストアンサー

Windows APIのGetAsyncKeyStateを利用しても、ありなようですね。

こちらは日本語のページで、それなりにわかりやすそうです。
例ではさらに他のAPIとの組み合わせで、さらに精密にキーを取得しているみたいですねえ。

参考URL:http://www.itmedia.co.jp/enterprise/articles/0412/07/news034_4.html

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub


人気Q&Aランキング