上次初步實現了一下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 ...