⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a_tcptime_cli.cpp

📁 一个不错
💻 CPP
字号:
/* Copyright is licensed under GNU LGPL.                 by I.J.Wang 2005 TCP client for time service Build: a_tcptime_cli*/#include "../src/wysockfile.h"#include "../src/wysockaddrinet4.h"#include "../src/wydate.h"#include "../src/wy_uty.h"const time_t UNIX_EPOCH= 2208988800UL;static const char* syntax= "[Syntax]$./a_tcptime_cli ip port\n" " ip  = server ip in dotted-decimal notation\n" " port= port number\n";int main(int argc, char* argv[])try { WyRet r; uint16_t port; const char* SvrIP; // convert argv[1] to URL and argv[2] to port number if(argc==3) {   SvrIP=argv[1];   if((r=Wy::_strnum(port,NULL,argv[2]))!=Ok) {     WY_THROW(r);   } } else {   if(argc!=1) {     Wy::cout << syntax;     return(-1);   }   port=37;   SvrIP="127.0.0.1"; } // setup socket and send message (unspedified) to the server const WySockAddrINet4 SvrAddr(SvrIP,port); WySockFile sock(PF_INET,SOCK_STREAM,0); const char TrigMsg[]="Request for time\n"; size_t tlen; if((r=sock.connect(SvrAddr))!=Ok) {   WY_THROW(r); } sock << TrigMsg; // read time_t time_t tm; if((r=Wy::full_read(sock,&tm,sizeof(tm),tlen))!=Ok) {   WY_THROW(r); } tm=ntohl(tm)-UNIX_EPOCH; // convert the time_t as in the local time zone and print it const WyDate date(Wy::local_tzname(), WyTimeSpec(tm,0));  Wy::cout << "Time from "          << "ip=" << Wy::wrd(SvrAddr.ip())          << " port=" << SvrAddr.port() << '\n'          << Wy::wrd(date) << "\n\n"; return(0);}catch(const WyRet& e) { if(e!=Ok) {   Wy::cerr << Wy::wrd(e) << '\n'; } return e->c_repcode();}catch(...) { Wy::cerr << "main caught(...)\n"; return(-1);};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -