tcp網路伺服器程式

2021-05-27 20:37:03 字數 1045 閱讀 4889

/*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...