1.WindowsNT4.0上のクライアント側からサーバのマシン時間(秒まで)取得をしたい。
2.あとクライアントの時刻も取得したい。

3.1.2.はc言語で行ったほうがいいのでしょうか?

具体的なコーディングがあればうれしいのですが・・。
宜しくお願いします。

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

A 回答 (2件)

サーバと時刻の同期を取りたいだけだったら、net コマンドでできますよ。



net time \\サーバ /set /yes

ユーザは「システム時刻の変更」の権限を持っていなくてはいけません。

もし、サーバが NTP のサービスをしているのであれば、NTP クライアントの
ソフトを導入することで可能です。Windows だったら有名所は「桜時計」で
しょうか?

# コーディングの話じゃなくて、申し訳ない

この回答への補足

桜時計があるなんてしりませんでした。あとClockSaver 1.5 日本語版で、NTPクライアントソフトや、GPS衛星の時刻電波などを利用でき時間のほせいができるそうです。すごですね。

丁寧にご解答いただきありがとうございます。


参考までに
> 昨日連絡を頂きまして、WindowsAPIでサーバーの時刻を取得する処理について調査
> しました。
> まず、私がお答えできるのはサーバーが「WindowsNT」の場合に限ることを
> 前提とさせて下さい。
> ======================================================
> ●クライアントOSが WindowsNT または Windows2000の場合
> ======================================================
>
> 下記のプログラムでAPIが使用できます。
> 下記の宣言から呼び出し例までをVBに貼り付ければOKです。
> サンプルプログラムも作成いたしましたのでVB5なら
> そのまま動作します。(実験済みです。)
>
> 【宣言】
> Declare Function NetRemoteTOD Lib "Netapi32.dll" _
> (UncServerName As Any, BufferPtr As Long) As Long
>
> Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
> (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
>
> Type TIME_OF_DAY_INFO
> tod_elapsedt As Long
> tod_msecs As Long
> tod_hours As Long
> tod_mins As Long
> tod_secs As Long
> tod_hunds As Long
> tod_timezone As Long
> tod_tinterval As Long
> tod_day As Long
> tod_month As Long
> tod_year As Long
> tod_weekday As Long
> End Type
>
> 【プロシージャ】
> Public Function GetServerDateTime(argServerName) As Date
> Dim abytServerName() As Byte
> Dim ptrTOD As Long
> Dim stuTOD As TIME_OF_DAY_INFO
> Dim ret As Long
>
> abytServerName = argServerName & vbNullChar
> ret = NetRemoteTOD(abytServerName(0), ptrTOD)
> If ret <> 0 Then
> MsgBox "Server Not Found"
> Exit Function
> End If
>
> CopyMemory stuTOD, ptrTOD, Len(stuTOD)
> GetServerDateTime = DateSerial(stuTOD.tod_year, stuTOD.tod_month,
> stuTOD.tod_day) + _
> TimeSerial(stuTOD.tod_hours, stuTOD.tod_mins - stuTOD.tod_timezone,
> stuTOD.tod_secs)
> End Function
>
> 【呼び出し例】
> Dim dtSvDateTime As Date
> dtSvDateTime = GetServerDateTime("サーバー名")
> msgbox dtSvDateTime
>
> ======================================================
> ●クライアントOSが Windows95 または Windows98の場合
> ======================================================
>
> APIは残念ながらわかりません。が時刻を取得するには下記の方法があります。
>
> 1、MS-DOSコマンドで「NET TIME \\ServerName」と打つ
> 2、「\\ServerNameの現在の時刻は 01/07/18 午前 11:06 です」
> と出力されます。(ServerNameは調べたいサーバー名です)
> 3、出力結果の文字列を編集する
>
>
> 以上です。

補足日時:2001/07/18 13:14
    • good
    • 0

質問2についてVC++では以下の方法があるみたいです。



/* FTIME.C: このプログラムは、_ftime関数を使って、現在の時刻を求め、
* timebuffer に格納します。
*/

#include <stdio.h>
#include <sys\timeb.h>
#include <time.h>

void main( void )
{

struct _timeb timebuffer;
char *timeline;

_ftime( &timebuffer );
timeline = ctime( & ( timebuffer.time ) );

printf( "現在の時刻は %.19s.%hu %s",
timeline, timebuffer.millitm, &timeline[20] );
}

詳しくはヘルプを見てください。

この回答への補足

詳しい解答ありがとうございます。
調べた結果、下記のコーデングでもいいそうです。

#include <time.h>
#include <stdio.h>
void main( void ){
time_t ltime;
time( &ltime );
printf( "現在の時刻は %s\n", ctime( &ltime ) );
}

できれば次のことがしたい
1.クライアントとサーバの時刻の誤差を調べること
2.言語、方法は問わず(環境はWindousNT4.0のクライアントとサーバ)
3.誤差がある場合、時刻を合わせたい

宜しく、お願いします。

補足日時:2001/07/17 17:45
    • good
    • 0

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

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

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

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

Q初心者がまず始めるプログラミング言語はなにはおすすめ?

こんにちは。
プログラムについてほぼまったくの初心者です。
シューティングゲームやファミコンの頃のようなマリオ系アクションがつくりたいです。また、就職時や特技として履歴書に書ける、役に立つプログラミング言語が学びたいです。
使っているOSはXPです。
C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。
たくさんあるプログラミング言語の中から、初心者にもわかりやすくて、また、他のプログラミング言語への勉強にもなるようなプログラミング言語はあるでしょうか?
おねがいします。

Aベストアンサー

> C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。

 厳しいですね。C言語の初歩程度でへこたれているようでは「就職時や特技として履歴書に書ける、役に立つプログラミング言語」のマスターはおぼつかないでしょう。が,C言語が初心者向きでないのもまた事実です。

 私としては,初心者には Python をお奨めします:

  ‐汚いプログラムが書きにくいような文法になっており,ああも書ける,こうも書けるといった,初心者を戸惑わせる文法事項が少ない
  ‐綺麗なプログラムを書かないと気持ち悪くなるという,良い習慣が身につく
  ‐文法が比較的単純
  ‐処理系が無料で手に入る
  ‐世界的に広く使われている
  ‐オブジェクト指向もできる

 その後で,JavaScript に進んでみてはいかがでしょうか。毛色の異なるいろいろな言語に慣れておく必要があり,将来,Java, C#, C, C++ などの言語に進むためにも。

 また,視野を広げるために Scheme, Common Lisp や ML, OCaml, Haskell, Erlang など関数言語のたぐいや,Perl や Ruby, sed, Awk などのスクリプト言語の本にも目を通されることをお勧めします(いずれも世界的に有名で,処理系が無料で手に入ります)。

 それから Java や C# などに取り組めば良いと思います。そして,C や C++ も勉強しておく必要があります。

 私自身は,仕事の都合でCOBOLとアセンブラを先に勉強し,かなり後になってC言語を勉強したので,C言語のポインタのどこが難しいのか分かりませんでした(C言語のポインタは簡単です(^^;)。ただし,アセンブラは余力があるときに限り取り組めばよいでしょう(でも,CASL関連の本には目を通しておくべき)。

> C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。

 厳しいですね。C言語の初歩程度でへこたれているようでは「就職時や特技として履歴書に書ける、役に立つプログラミング言語」のマスターはおぼつかないでしょう。が,C言語が初心者向きでないのもまた事実です。

 私としては,初心者には Python をお奨めします:

  ‐汚いプログラムが書きにくいような文法になっており,ああも書ける,こうも書けるといった,初心者を戸惑わせる文法事項が少...続きを読む

QCのコーディング規則:GNUコーディング規則

Cのプログラミングにおいて、グループ内でコーディング規則を
決めようと思ってます。
で、いろいろWebを見てる中で「GNUコーディング規則」という
ものがあるのを知りました。
どんなことが書かれているか知りたく、「GNUコーディング規則」
というキーワードで只今検索中です。
キーワードとしては引っかかるのですが、まだ「GNUコーディング規則」
の内容についての記述があるWebが見つかりません。。。
どなたか「GNUコーディング規則」の内容が書かれたURLをご存知でしたら
教えてください。
よろしくお願いします。

Aベストアンサー

「規約」でさがせば出てきますが、これのことですか。

参考URL:http://www.sra.co.jp/wingnut/standards-j_toc.html

Q初心者が選ぶべきプログラミング言語は?

初心者が選ぶべきプログラミング言語は?

プログラミングの勉強を始めようと思っている超初心者です。この手の質問はこちらでもかなり検索すればヒットしますが、いまいち良くわからないのであえて質問します。

私のような初心者がプログラミングをはじめるときどの言語を選んだらよいでしょうか?
重視することは「将来性があって」「有用性のある」「標準的な」言語です。
言語選びにはしたいことの明確なビジョンがないといけないと言われますよね
私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています
後々は勉強の具合により目的も変えてゆきたいと思っていますが・・・

今現在の理解では・・・
基礎はCで、ビジネスではJavaで、WebはPHP、ぐらいしか解りません。どれもプログラミングの共通点を
有していて勉強すればある程度は共通知識を身につけられることも言われてはいますが
言語選びを間違えたくないなと思いまして。

Cをすこし勉強したときいつwindowsアプリのようなウィンドウをつくれるかももわかりませんでした。
現在自分ができることといったらExcelでVBAを組んで(かなり低レベルですが)自動化させる程度です。


ビジネスの世界、SEなどのプログラマーの世界で今注目されている言語や花形言語など、現在業界のオーバービューも知りたいです、詳しい方どうぞよろしくお願いします。

※個人的にはRubyが面白そうで、いろんなことができそうだなと思っています。

初心者が選ぶべきプログラミング言語は?

プログラミングの勉強を始めようと思っている超初心者です。この手の質問はこちらでもかなり検索すればヒットしますが、いまいち良くわからないのであえて質問します。

私のような初心者がプログラミングをはじめるときどの言語を選んだらよいでしょうか?
重視することは「将来性があって」「有用性のある」「標準的な」言語です。
言語選びにはしたいことの明確なビジョンがないといけないと言われますよね
私の目的はwindowsのフリーソフトのようなツールを作りたい...続きを読む

Aベストアンサー

私は10数年Windows用のクライアントソフトを開発していますが・・・

>重視することは「将来性があって」「有用性のある」「標準的な」言語です。



>私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています

が、合致しません。

WindowsというクライアントPC 用のアプリ開発自体が、「将来性がなく」「標準的でない」方向にあると思います。エンジニアの求人情報を調べればわかります。


それから、身につけたい技術の選び方として、「言語」はあまり意味がないです。
C言語をマスターしたからといって、WindowsやiPhoneで思い通りにソフト開発ができるわけじゃないです。

なので、最初は「どのプラットフォームの開発を身につけたいか」を決めた方が適切なアドバイスがもらえると思います。

Windows?iPhone?Webアプリ? SaaS系?などなど

プラットフォームが決まれば、今習得すべき言語は(本人の希望によらず)勝手に決まってしまいます。AndoroidならJavaとか。

「将来性」はともかく、Windowsアプリを作りたいのであれば、.NET Framework で VBでもC#でもお好きな方を使って開発するのが一般的ですが、それでもハード性能を100%使い切るばりばりの3Dゲームソフトを作りたいなら Win32API & C++ & DirectXでどうぞ、という感じです。その前にWindowsで3Dゲームを作ること自体が今となっては疑問です。XBOX + XNAの方がいいかもしれません。
将来性をもってゲームを作りたいなら、AndroidやiPhone で OpenGLアプリを勧めたいですね。

という感じで、言語を選ぶこととプラットフォームを選ぶことは別で、多くの場合プラットフォームが決まれば最適な言語をマスターするしかないということです。

私は10数年Windows用のクライアントソフトを開発していますが・・・

>重視することは「将来性があって」「有用性のある」「標準的な」言語です。



>私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています

が、合致しません。

WindowsというクライアントPC 用のアプリ開発自体が、「将来性がなく」「標準的でない」方向にあると思います。エンジニアの求人情報を調べればわかります。


それから、身につけたい技術の選び方として、「言語」はあまり意味がないです。
C言語を...続きを読む

Qネイティブ ハンドルって...............

ネイティブ ハンドルってなんでしょうか?
ウィンドウ ハンドルを調べていたら出てきたのですが
調べてもわかりません
すいませんがどのようなものなのかお教え願えませんか?
よろしくお願い致します

Aベストアンサー

カテゴリ違いでは?
.NETですよね。

.NETでは、従来のウィンドウハンドルは基本的に使いません。
Windowsプラットフォームにネイティブなものだからネイティブハンドルと呼んでいるのでしょう。

Q僕は高校生なんですがプログラミング言語を将来のために学びたいと思っています。まだ初心者なので調べた結

僕は高校生なんですがプログラミング言語を将来のために学びたいと思っています。まだ初心者なので調べた結果RubyかPythonのどちらかにしようと思うのですがどちらがいいでしょうか?
なるべく多くの意見を参考にしたいです。

Aベストアンサー

入門書とか入門サイトとか少し読んでみて、直感的に「なんとかなりそう」と思った方。
悩んでないで、直感を信じてとにかく始めることです。


プログラムは大きく
・やろうとしていることをどうやって実現するか?
・それをプログラミング言語でどうやって記述するか?
の2つの要素があります。

前者の「やり方」は、言語によろ違いが少ないので、一度身に付くと、言語が変わっても応用が効きます。
後者の「書き方」は(多少似たところはあるものの)言語毎に違うので、「やり方」程は応用が効きません。

「最初の言語」はどうしても「やり方」「書き方」の両方を学習しなければなりません。
ですが、次からは「書き方」中心の学習になるので、「最初の言語」ほどは苦労しないはずです。


なので、とにかく早く始めて、「やり方」を身に付けていきましょう。
直感がはずれて、「この言語は無理」と感じたとしても、「次の言語」へは1から始めるよりははるかに楽になっているはずです。

Q1/100秒...。

C言語を使って、1/100秒を取得する方法を知りたいのですが、どうやったら取得できるのでしょうか?
どなたか、ご存知の方がいらしたら、
教えていただきたいのですが...。

Aベストアンサー

OSはおそらくwindows系かと思いますが
APIのGetTickCountを使ってはどうでしょうか?

GetTickCount:システムが起動してからの経過時間をミリ秒単位で取得する

QC言語でプログラミングできるソフト(初心者)

大学1年で今年から始めてプログラミング(C言語)を学ぶものです。
今のところif文やfor文、関数などの基本をかじった程度なのですが
なんとか自分の家のパソコンでプログラミングを行いたいので、
何か良いソフトのようなものはないでしょうか?(有料でも構いません)

実際に文などが書けて、コンパイルし、結果を出力してくれるものです。
パソコン自体がまだ初心者なので、できればで良いのですが、分りやすいものをお願いします<m(__)m>

Aベストアンサー

#4さんも書かれてますが、大学であればunixかLinuxの環境だと思います。
なので、私もcygwinをお勧めします。windows上にuinxの環境を構築できて、gccという無料のコンパイラが利用できます。
それにunixやlinuxの環境構築の良い勉強になります。

簡単な導入の仕方がありますので試してみてください。
http://www.twcu.ac.jp/~osada/comp2a/cygwin.html
こちらも参考に。
http://programnet.hp.infoseek.co.jp/coloum/colum.html

Qソケットでクライアントのipアドレスを取得できるそうですが・・・

C言語ですが、次のようにするとクライアントのipアドレスが
取得できるとのことですが、ここに入っているipアドレス(下記のdstAddr.sin_addr)
は、どういったものでしょうか?
例えば次の場合
クライアント --- プロキシサーバ  --- 端末

プロキシサーバのipアドレスですか?
それともクライアントのipアドレスですが?
それともナット変換前のipアドレスですか?

dstSocket = accept(srcSocket, (struct sockaddr *) &dstAddr, &dstAddrSize);
printf("Connected from %s\n", inet_ntoa(dstAddr.sin_addr));

ご教授して頂きたいです。
当方、C言語はまだ、2,3年と言ったところです。

Aベストアンサー

これはプログラマでは分からないです。

エンド・ツー・エンドを中継している
機器がどういった環境に設定(設計)に
するかによります。

プログラマとしては、dstAddr.sin_addr
に入ったIPアドレスをもった相手と
通信を開始すると認識するしかないと
いうことです。

例えば、こんなネットワーク
Client  NAT  Server
□――C□B――□
A → A→B → D
A ← C←D ← D

このケースで、NATのアドレス変換
Aからの通信はNATで
Bからの通信に書き換えます。
Dからの通信はNATで
Cからの通信に書き換えます。

DはAからの通信はBから来たように
しかみえないし、
AはDからの通信はCから来たように
しかみえないのです。

つまりお互いA,DといったIPアドレス
を意識してはだめで、
Aの相手はC(実はD)
Dの相手はB(実はA)
と考えなければいけません。

このネットワーク環境はNATの
設定によりいろいろバリエーションが
ありますが、プログラムとしては
つなぎにきた相手に返すという形に
なるでしょう。

ということで、
上記環境を前提にした場合、
AからDに接続にきた時、
Dのプログラムが受ける
dstAddr.sin_addrに入る値は、
Bとなります。

いかがでしょうか?

これはプログラマでは分からないです。

エンド・ツー・エンドを中継している
機器がどういった環境に設定(設計)に
するかによります。

プログラマとしては、dstAddr.sin_addr
に入ったIPアドレスをもった相手と
通信を開始すると認識するしかないと
いうことです。

例えば、こんなネットワーク
Client  NAT  Server
□――C□B――□
A → A→B → D
A ← C←D ← D

このケースで、NATのアドレス変換
Aからの通信はNATで
Bからの通信に書き換えます。
Dからの通信はNATで
Cからの通信に書き換えま...続きを読む

Q初心者におススメのプログラミング言語は何ですか?

C C++ Java などの言語がありますが、中でも初心者(素人)が始めるにあたって一番おススメの言語は何ですか。

 教えてください。 よろしくお願いします。

Aベストアンサー

JavaScriptがオススメです。
理由は
1)ネット上に情報がたくさんある
2)開発環境の構築が容易
3)実行環境の構築が容易
4)実行時の動作がグラフィカルなので「達成感」がある
特に4は重要です。

必要に迫られない勉強は、やる気を継続させる事が結構難しかったりします。
コマンドプロンプト上で実行するような言語の場合、せっかく苦労してプログラムを組んでも
動作結果が地味な事が多いため、動いた事に対する感動が薄くなります。
これが積み重なると、途中で投げ出す結果につながりかねません。
その点、JavaScriptのようにダイアログを出したり色を変えたりといった
動作をさせる言語であれば、やる気の低下を抑える事が出来ます。

もっとダイナミックな動きをさせたいのであれば、
Delphi(Pascal)、C#、VBなどを使うのもいいでしょう。
どれも無料版の開発環境を配布しています。

将来プロになる事を考えているのであれば現在よく使われているPHPや
今後よく使われることになると思われるPython、Rubyなどを勉強するのもいいかもしれませんが
1つのプログラミング言語を身に付ければ他の言語に移るのは割と楽ですので
最初は勉強のしやすさを基準に選ばれると良いかと思います。

JavaScriptがオススメです。
理由は
1)ネット上に情報がたくさんある
2)開発環境の構築が容易
3)実行環境の構築が容易
4)実行時の動作がグラフィカルなので「達成感」がある
特に4は重要です。

必要に迫られない勉強は、やる気を継続させる事が結構難しかったりします。
コマンドプロンプト上で実行するような言語の場合、せっかく苦労してプログラムを組んでも
動作結果が地味な事が多いため、動いた事に対する感動が薄くなります。
これが積み重なると、途中で投げ出す結果につながりかね...続きを読む

Qsshクライアントで接続先で開いたウィンドウもクライアント側で表示できるもの

sshクライアントで接続先で開いたウィンドウもクライアント側で表示できるものを探しています。(説明ヘタクソですみません)

普段はTera Termを使っているのですが、OpenGLのプログラムを動かしたいので上記のようなソフトがほしいのです。

よろしくお願いします。

Aベストアンサー

クライアント側で、Xサーバーを動かします。サーバー側でプログラム起動時にDISPLAY環境変数で、192.168.0.1:0.0 のようにディスプレイ名を指定します。
「Windows Xサーバー」で検索してみてください。フリーの物、有償の物があります。


人気Q&Aランキング

おすすめ情報