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

2021-12-29 20:36:09 字數 3603 閱讀 3026

客戶端向伺服器端傳送請求,伺服器收到請求做相應的處理,將處理結果傳回客戶端。下面採用tcp協議實現伺服器和客戶端之間的連線。

1.      客戶端

約定雙方的傳輸協議(udp或者tcp),根據傳輸協議建立socket;

伺服器的ip位址和埠號;

連線伺服器;

獲取伺服器傳遞回來的資料。

[cpp]

#include    

#include      

#include      

#include      

#include      

#include      

#include     

#include     

#include      

#include     

#include     

#include     

using namespace std;   

const int maxline=1024;   

int main(int argc,char** ar**)   

sockfd=socket(af_inet,sock_stream,0);   

if(sockfd<0)   

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

servaddr.sin_family=af_inet;   

servaddr.sin_port=htons(8080);//將無符號短整型數值轉換為網路位元組序,即將數值的高位位元組存放到記憶體中的低位位元組0x1234變為0x3412     

if(inet_pton(af_inet,ar**[1],&servaddr.sin_addr)<=0)//將ip位址在「點分十進位制」和整數之間轉換     

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

while((n=read(sockfd,recvline,maxline))>0)   

}   

if(n<0)   

exit(0);   

}

#include  

#include   

#include   

#include   

#include   

#include   

#include  

#include  

#include   

#include  

#include  

#include  

using namespace std; 

const int maxline=1024; 

int main(int argc,char** ar**) 

sockfd=socket(af_inet,sock_stream,0); 

if(sockfd<0) 

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

servaddr.sin_family=af_inet; 

servaddr.sin_port=htons(8080);//將無符號短整型數值轉換為網路位元組序,即將數值的高位位元組存放到記憶體中的低位位元組0x1234變為0x3412  

if(inet_pton(af_inet,ar**[1],&servaddr.sin_addr)<=0)//將ip位址在「點分十進位制」和整數之間轉換  

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

while((n=read(sockfd,recvline,maxline))>0) 

} if(n<0) 

exit(0); 

} 2.      伺服器

約定雙方的傳輸協議(udp或者tcp),根據傳輸協議建立socket;

將位址和埠繫結到socket;

對埠進行偵聽,直到偵聽到有連線資訊;

接收連線,然後將資料寫回連線中。

將位址和埠繫結到socket 

[cpp]

#include   

#include     

#include     

#include     

#include     

#include     

#include    

#include    

#include     

#include    

#include    

#include    

#include    

using namespace std;   

const int maxline=1024;   

int main(int argc,char **ar**)   

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

servaddr.sin_family=af_inet;   

servaddr.sin_port=htons(8080);   

servaddr.sin_addr.s_addr=htonl(inaddr_any);   

int bindfd=bind(listenfd,(sockaddr*)&servaddr,sizeof(servaddr));//將位址和埠繫結到socket    

if(bindfd<0)   

listen(listenfd,maxline);//監聽連線,一直阻塞,直到有連線出現    

while(1)   

return 0;   

}

#include 

#include  

#include  

#include  

#include  

#include  

#include 

#include 

#include  

#include 

#include 

#include 

#include 

using namespace std; 

const int maxline=1024; 

int main(int argc,char **ar**) 

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

servaddr.sin_family=af_inet; 

servaddr.sin_port=htons(8080); 

servaddr.sin_addr.s_addr=htonl(inaddr_any); 

int bindfd=bind(listenfd,(sockaddr*)&servaddr,sizeof(servaddr));//將位址和埠繫結到socket 

if(bindfd<0) 

listen(listenfd,maxline);//監聽連線,一直阻塞,直到有連線出現 

while(1) 

return 0; 

socket實現獲取伺服器時間

上次初步實現了一下socket的應用程式。這次在針對socket寫乙個應用程式。這次的應用是實現客戶端從主機獲取時間並且設定為自己的時間 伺服器 include include include include include include include include include defin...

linux下socket程式設計之時間伺服器

為網路上的使用者提供時間服務,即為網路使用者返回伺服器的當前時間 記錄發出請求的網路使用者的ip位址 儲存到檔案中 編寫時間服務客戶端timeclient,該客戶端能夠向伺服器傳送時間服務請求,並把獲得的時間返回給使用者。開發環境 fedora13,vim,gcc timeserver.c檔案。in...

js獲取伺服器時間

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