資源描述:
《linux socket編程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、最近看了一些網(wǎng)絡(luò)編程的書(shū)籍,一直以來(lái)總感覺(jué)網(wǎng)絡(luò)編程神秘莫測(cè),其實(shí)網(wǎng)絡(luò)編程入門還是很容易學(xué)的,下面這些代碼是我在linux下編寫的,已經(jīng)運(yùn)行過(guò)了,編譯之后就可以運(yùn)行了。有不足之處希望大家多多指出,共同學(xué)習(xí)交流?! CP協(xié)議: 服務(wù)器端:tcp_server.c #include #include #include #include #include intmain(intargc,char*argv[]) { ints; intfd;
2、 intlen; structsockaddr_inmy_addr;??//服務(wù)器網(wǎng)絡(luò)地址結(jié)構(gòu)體 structsockaddr_inremote_addr;//客戶端網(wǎng)絡(luò)地址結(jié)構(gòu)體 intsin_size; charbuf[BUFSIZ];//數(shù)據(jù)傳送的緩沖區(qū) memset(&my_addr,0,sizeof(my_addr));//數(shù)據(jù)初始化--清零 my_addr.sin_family=AF_INET;//設(shè)置為IP通信 my_addr.sin_addr.s_addr=INADDR_ANY;//服務(wù)器IP地址--允許連接到所有本地地址上 my_addr.sin
3、_port=htons(8000);//服務(wù)器端口號(hào) /*創(chuàng)建服務(wù)器端套接字--IPv4協(xié)議,面向連接通信,TCP協(xié)議*/ if((s=socket(PF_INET,SOCK_STREAM,0))<0) { perror("socket"); return1; } /*將套接字綁定到服務(wù)器的網(wǎng)絡(luò)地址上*/ if(bind(s,(structsockaddr*)&my_addr,sizeof(structsockaddr))<0) { perror("bind"); return1; } /*監(jiān)聽(tīng)連接請(qǐng)求--監(jiān)聽(tīng)隊(duì)列長(zhǎng)度為5*/ listen(s,5);
4、 sin_size=sizeof(structsockaddr_in); /*等待客戶端連接請(qǐng)求到達(dá)*/ if((fd=accept(s,(structsockaddr*)&remote_addr,&sin_size))<0) { perror("accept"); return1; } printf("acceptclient%s",inet_ntoa(remote_addr.sin_addr)); len=send(fd,"Welcometomyserver",21,0);//發(fā)送歡迎信息 /*接收客戶端的數(shù)據(jù)并將其發(fā)送給客戶端--recv返回接收
5、到的字節(jié)數(shù),sand返回發(fā)送的字節(jié)數(shù)*/ while((len=recv(fd,buf,BUFSIZ,0))>0)) { buf[len]='