日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號(hào) > 充電吧
[導(dǎo)讀]#include//標(biāo)準(zhǔn)庫 #include//標(biāo)準(zhǔn)輸出 #include//錯(cuò)誤編號(hào) #include//字符串 #include//sock #include//類型 #include//用到網(wǎng)絡(luò)

#include//標(biāo)準(zhǔn)庫
#include//標(biāo)準(zhǔn)輸出
#include//錯(cuò)誤編號(hào)
#include//字符串
#include//sock
#include//類型
#include//用到網(wǎng)絡(luò)函數(shù)中的結(jié)構(gòu)體需要引入的頭文件
#include//系統(tǒng)文件中的socket頭文件

#define?MY_PORT?1988//我的端口號(hào)碼

?
int?main(int?argc?,char?**argv)
{
?int?listen_fd,accept_fd;//設(shè)置了兩個(gè)套接字描述符???
?struct?sockaddr_in?????client_addr;//設(shè)置了兩個(gè)套接字描述符的地址
?int?n;
?
?if((listen_fd=socket(AF_INET,SOCK_STREAM,0))<0)//誰定監(jiān)聽套接字的屬性
??{
????????printf("Socket?Error:%sna",strerror(errno));
????????exit(1);
??}
?
?bzero(&client_addr,sizeof(struct?sockaddr_in));//清空地址結(jié)構(gòu)體緩沖區(qū)
?client_addr.sin_family=AF_INET;//地址是IPV4
?client_addr.sin_port=htons(MY_PORT);//設(shè)置了對(duì)方套接字想要連接我的時(shí)候用的端口號(hào)碼
?client_addr.sin_addr.s_addr=htonl(INADDR_ANY);//設(shè)置成任何人訪問的套接字
?n=1;
?/*?如果服務(wù)器終止后,服務(wù)器可以第二次快速啟動(dòng)而不用等待一段時(shí)間??*/
?setsockopt(listen_fd,SOL_SOCKET,SO_REUSEADDR,&n,sizeof(int));//******設(shè)置ip地址可以復(fù)用
?																															//將監(jiān)聽地址設(shè)置成可以復(fù)用
?																																//第二個(gè)參數(shù)表示協(xié)議所屬等級(jí)
?																																//第三個(gè)參數(shù)真正的控制選項(xiàng)函數(shù)入口地址
?if(bind(listen_fd,(struct?sockaddr?*)&client_addr,sizeof(client_addr))<0)//綁定套接字
??{
????????printf("Bind?Error:%sna",strerror(errno));//?如果沒有綁定成果則報(bào)錯(cuò)
????????exit(1);//報(bào)錯(cuò)后退出
??}
??listen(listen_fd,5);//設(shè)置套接字最大監(jiān)聽數(shù)目???最多鏈接的套接字的數(shù)目是五個(gè)
??
??
??
??
??while(1)//進(jìn)入循環(huán)
??{
???accept_fd=accept(listen_fd,NULL,NULL);//處理每次監(jiān)聽的fd
???																		//接聽套接字的函數(shù)					
???																			//設(shè)置套接字的屬性
???																		//將聽來的套接字?存放到接收處理套接字里面去
???
???if((accept_fd<0)&&(errno==EINTR))//監(jiān)聽沒創(chuàng)建成功,文件打開又錯(cuò)誤
??????????continue;//
???else?if(accept_fd<0)
????{
????????printf("Accept?Error:%sna",strerror(errno));//打印錯(cuò)誤號(hào)碼
????????continue;
????}
??if((n=fork())==0)//如果大于零的話?返回的是父進(jìn)程
???{
????????/*?子進(jìn)程處理客戶端的連接?*/
????????char?buffer[1024];
????????close(listen_fd);//這時(shí)候不在監(jiān)聽套接字
????????n=read(accept_fd,buffer,1024);//每次讀取1024個(gè)字節(jié)
????????write(accept_fd,buffer,n);//讀到n個(gè)就寫到接收里面去
????????close(accept_fd);//關(guān)閉接收套接字
????????exit(0);
???}
???else?if(n<0)
????????printf("Fork?Error:%sna",strerror(errno));
???close(accept_fd);
??}
}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉