socket實現獲取伺服器時間

2021-07-10 22:20:09 字數 2467 閱讀 2977

上次初步實現了一下socket的應用程式。。這次在針對socket寫乙個應用程式。。

這次的應用是實現客戶端從主機獲取時間並且設定為自己的時間

伺服器**

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define maxline 4096

int main(int argc, char** argv)

memset(&servaddr, 0, sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_addr.s_addr = htonl(inaddr_any);

servaddr.sin_port = htons(6666);

if((bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr))) == -1)

if (listen(listenfd, 10) == -1)

printf("***************==waiting for client's request********************=\n");

while(1)

n = recv(connfd, buff, maxline, 0);

buff[n] = '\0';

printf("the address's request is %s\n", buff);

time(&timep);//獲取時間並列印顯示當前時間。。可以不列印

p=localtime(&timep);

printf ("%d/%d/%d %d:%d:%d\n", ( 1+p->tm_mon), p->tm_mday,(1900+p->tm_year), p->tm_hour, p->tm_min, p->tm_sec);

buff[0] = (char) p->tm_year;//處理字串方便客戶端接受

buff[1] = '-';

buff[2] = (char) p->tm_mon;

buff[3] = '-';

buff[4] = (char) p->tm_mday;

buff[5] = '-';

buff[6] = (char) p->tm_hour;

buff[7] = '-';

buff[8] = (char) p->tm_min;

buff[9] = '-';

buff[10] = (char) p->tm_sec;

buff[11] = '\0';

if(send(connfd, buff, strlen(buff), 0) <0 )//傳送字串

close(connfd);

}close(listenfd);

}客戶端**

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define maxline 4096

int settime(char *recvline)//設定時間的函式

return 0;

}int main(int argc, char **argv)

if ((sockfd = socket(af_inet, sock_stream, 0)) < 0)

memset(&servaddr, 0, sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_port = htons(6666);

if (inet_pton(af_inet, argv[1], &servaddr.sin_addr) <= 0)

if (connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) <0 )

if (send(sockfd, sendline, strlen(sendline), 0) <0 )//向伺服器說明動作。。沒具體用途

n = recv(sockfd, recvline, maxline, 0); //接受字串

recvline[n] = '\0';

if((n=settime(recvline)) < 0)

close(sockfd);

return 0;

}這樣就可以實現獲取時間了。。

我用的是開發板當客戶端。。在這之前無比實現gprs模組ppp撥號上網或者wifi上網功能或者其他上網功能。。要不開發板ping不通主機是沒辦法實現socket的。。我之前的部落格有這兩種方法的實現

Socket程式設計獲取伺服器時間

客戶端向伺服器端傳送請求,伺服器收到請求做相應的處理,將處理結果傳回客戶端。下面採用tcp協議實現伺服器和客戶端之間的連線。1.客戶端 約定雙方的傳輸協議 udp或者tcp 根據傳輸協議建立socket 伺服器的ip位址和埠號 連線伺服器 獲取伺服器傳遞回來的資料。cpp include inclu...

js獲取伺服器時間

js獲取伺服器端時間有何用?比如說做乙個商品倒計時搶購的活動,使用new date 來獲取時間來做是有風險的,比如時區,使用者手動修改時間等 js如何獲取伺服器端時間?獲取伺服器時間還是會依賴ajax請求,但是可以不用通過後台介面獲取,可直接在請求頭部獲取到,如下 同步請求 function get...

JS獲取伺服器時間

var d new date var d2 new date 年,月,日,時,分,秒 new date 2014,11 2014年12月 月從0到11 new date 2018,7,8,18,8,8 2018年8月8日 18時8分8秒 獲取年 getfullyear 獲取月 getmonth 0 ...