/*tcp_server.c*/
#include
#include
#include
#include
#include
#include
#include
#include
#define portnumber 3333
int main()
/*伺服器端填充sockaddr結構*/
bzero(&server_addr,sizeof(struct sockaddr_in));/*初始化,置0*/
server_addr.sin_family=af_inet;//ipv4
server_addr.sin_addr.s_addr=htonl(inaddr_any);//伺服器程式可以執行在任何ip的主機上
//server_addr.sin_addr.s_addr=inet_addr("192.168.1.1");
server_addr.sin_port=htons(portnumber);
/***sockfd描述符到ip位址*/
if(bind(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)
/*設定允許連線的最大客戶數*/
if(listen(sockfd,5)==-1)
while(1)
fprintf(stderr,"server get connecttion from %s\n",inet_ntoa(client_addr.sin_addr));
if((nbytes=read(new_fd,buffer,1024))==-1)
buffer[nbytes]='\0';
printf("server received %s\n",buffer);
/*這個通訊已經結束*/
close(new_fd);
/*迴圈下乙個*/
}/*結束通訊*/
close(sockfd);
exit(0);
}
關於網路伺服器
假如我有數千萬甚至是上億的使用者資料,我想把使用者自增id和使用者名稱username放到快取裡。我的需求是,當要查詢使用者的資訊時,我想先從快取裡根據使用者名稱username獲取到使用者的id,然後再通過id在資料庫裡查詢使用者的資訊。我想當乙個使用者表達到上億的數量級別時,用自增id來查詢肯定...
網路伺服器宕機
1.伺服器程序終止 當伺服器程序終止時,伺服器傳送fin給客戶端,客戶端回以ack,客戶端進入close wait狀態,但還沒有結束連線。此時客戶端阻塞於fgets,客戶端繼續傳送buffer,伺服器傳送rst,客戶端readline返回0。而如果客戶端不理睬readline返回的rst,繼續wri...
linux網路伺服器
在本次中,學習了乙個簡單的基於tcp ip的伺服器 客戶端。在例子中,利用的是af inet域。在linux下,最常用就是af inet,af unix.af unix是linux檔案系統實現的本地要借字。後面的是可以用於包括英特網在內的tcp ip網路通訊的程式。下面來看乙個簡單的基於tcp ip...