客戶端向伺服器端傳送請求,伺服器收到請求做相應的處理,將處理結果傳回客戶端。下面採用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...