- 1 名前:デフォルトの名無しさん [02/04/15 12:09]
- 7行×79文字なら言語は問いません。
過去作品は>>2-5を参照。 ■前スレ pc.2ch.net/test/read.cgi/tech/984182993/
- 311 名前:tara mailto:sage [02/05/14 04:23]
- 超簡易七行SNTPクライアントです。(SMTPではない)
エラーチェック皆無です。引数の数すらチェックしてません。 コンパイルすると警告が出ますが、無視してやってください。 #include <winsock.h> #include <time.h> int N[12];int z;u_int n;struct tm*T;SOCKADDR_IN d={2,31488},u={2,4,0};main(int c,char **a){WSADATA w;SOCKET s;SOCKADDR*q=(SOCKADDR*)&u;WSAStartup(514,&w);s= socket(2,2,0);bind(s,q,16);d.sin_addr.s_addr=inet_addr(a[1]);*N=11;z=48;sendto (s,&N,z,0,(PSOCKADDR)&d,16);recvfrom(s,&N,z,0,(PSOCKADDR)&d,&z);n=ntohl(N[10]) -2208988800;printf("%s",ctime(&n));closesocket(s);} 前回に引き続きstdio.hをincludeできませんでした……残念。 実行時には、SNTPサーバーのIP(ドット区切りの数字で指定)を引数として 指定する必要があります。 ex) program 127.0.0.1 多分これで動くはず、です。
- 312 名前:tara mailto:sage [02/05/14 04:36]
- ……言ってるそばから縮みました。
#include <winsock.h> #include <stdio.h> #include <time.h> int N[12];int z;u_int n;struct tm*T;SOCKADDR_IN d={2,31488},u={2,4};main(int c, char **a){WSADATA w;SOCKET s;SOCKADDR*q=&u;WSAStartup(514,&w);s=socket(2,2,0); bind(s,q,16);d.sin_addr.s_addr=inet_addr(a[1]);*N=11;z=48;sendto(s,&N,z,0,&d, 16);recvfrom(s,&N,z,0,&d,&z);n=ntohl(N[10])-2208988800;printf("%s",ctime(&n));} VC++ .NETで動作検証しました。 これでも動くのか……。
|

|