#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <time.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #define SERV_PORT 25555 //服務(wù)器接聽(tīng)端口號(hào) #define BACKLOG 20 //請(qǐng)求隊(duì)列中允許請(qǐng)求數(shù) #define BUF_SIZE 256 //緩沖區(qū)大小 int main(int argc,char *argv[]) { int ret; time_t tt; struct tm *ttm; char buf[BUF_SIZE]; pid_t pid; //定義管道描述符 int sockfd; //定義sock描述符 int clientfd; //定義數(shù)據(jù)傳輸sock描述符 struct sockaddr_in host_addr; //本機(jī)IP地址和端口信息 struct sockaddr_in client_addr; //客戶端IP地址和端口信息 int length = sizeof client_addr; //創(chuàng)建套接字 sockfd = socket(AF_INET, SOCK_STREAM, 0); //TCP/IP協(xié)議,數(shù)據(jù)流套接字 if(sockfd == -1) //判斷socket函數(shù)的返回值 { printf("創(chuàng)建socket失敗.\n"); return 0; } //綁定套接字 bzero(&host_addr, sizeof host_addr); host_addr.sin_family = AF_INET; //TCP/IP協(xié)議 host_addr.sin_port = htons(SERV_PORT); //設(shè)定端口號(hào) host_addr.sin_addr.s_addr = INADDR_ANY; //本地IP地址 ret = bind(sockfd, (struct sockaddr *)&host_addr, sizeof host_addr); //綁定套接字 if(ret == -1) //判斷bind函數(shù)的返回值 { printf("調(diào)用bind失敗.\n"); return 1; } //監(jiān)聽(tīng)網(wǎng)絡(luò)端口 ret = listen(sockfd, BACKLOG); if(ret == -1) //判斷l(xiāng)isten函數(shù)的返回值 { printf("調(diào)用listen函數(shù)失敗.\n"); return 1; } while(1) { clientfd = accept(sockfd, (struct sockaddr *)&client_addr, &length); //接收接連請(qǐng)求 if(clientfd == -1) { printf("調(diào)用accept接受連接失敗.\n"); return 1; } pid = fork(); //創(chuàng)建子進(jìn)程 if(pid == 0) //在子進(jìn)程是處理 { while(1) { bzero(buf, sizeof buf); //首先清空緩沖區(qū) tt = time(NULL); ttm = localtime(&tt); //獲取當(dāng)前時(shí)間參數(shù) strcpy(buf, asctime(ttm)); //將時(shí)間信息copy進(jìn)緩沖區(qū) send(clientfd, buf, strlen(buf), 0); //發(fā)送數(shù)據(jù) sleep(2); } close(clientfd); //調(diào)用close函數(shù)關(guān)閉連接 } else if(pid > 0) { close(clientfd); //父進(jìn)程關(guān)閉套接字,準(zhǔn)備下一個(gè)客戶端連接 } } return 0; }
網(wǎng)頁(yè)題目:[Linux網(wǎng)絡(luò)編程]TCP編程--TCP通信程序服務(wù)器端
文章位置:http://www.rwnh.cn/article10/jsdjgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)、用戶體驗(yàn)、網(wǎng)站維護(hù)、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)