//ser.cpp#include <iostream>#include <fcntl.h>#include <sys/socket.h>#include <sys/select.h>#include <unistd.h>#include <arpa/inet.h>#include <netinet/in.h>#include <string.h>#define IP "127.0.0.1"#define PORT 8888usingnamespace Std;intMain () {intSOCKSER,SOCKCLI; Sockaddr_in addrser,addrcli; Sockser = socket (Af_inet,sock_stream,0); Bzero (&addrser,sizeof(Addrser)); Bzero (&ADDRCLI,sizeof(Addrser)); addrser.sin_family = af_inet; Addrser.sin_port = htons (port); ADDRSER.SIN_ADDR.S_ADDR = inet_addr (IP); socklen_t len =sizeof(sockaddr_in); Bind (Sockser, (sockaddr*) &addrser,len); Listen (Sockser,5);Charclibuff[255]; memset (Clibuff,0,sizeof(Clibuff));////////////////////////// /////////////////////// /////Fd_set Read;fd_set Write;Static intMAXFD =0;intsock_set[ -];//socket set.intSize =1;//indexSockcli = Accept (Sockser, (sockaddr*) &addrcli,&len);if(sockcli<0) {cout<<sockcli<<endl; cout<<"Accept () error!!!!"<<endl; Close (Sockser); Close (SOCKCLI);return-1;}structTimeval _timeout={3,0};off_t FD = open ("a", o_creat| O_RDWR); while(1) {Fd_zero (&read); Fd_set (Sockcli,&read); Fd_zero (&write); Fd_set (Fd,&write); MAXFD = maxfd>sockcli?maxfd:sockcli; MAXFD = maxfd>fd?maxfd:fd;Select(maxfd+1, &read,&write,null,&_timeout);if(Fd_isset (Sockcli,&read)) {if(fork () = =0) {cout<<"Return"<<endl;Charbuff[255]; memset (Buff,0,sizeof(buff)); while(1) {Read (Sockcli,buff,sizeof(buff)); cout<<buff<<endl;Charstr[]="Xiaoyanzi"; Write (Sockcli,str,strlen (str) +1); } } }if(Fd_isset (Fd,&write)) {Write (FD,"1234",5); Sleep1); }}return 0;}
#include <iostream>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h>#define IP "127.0.0.1"#define PORT 8888using namespace STD;intMain () {intSOCKCLI = socket (Af_inet,sock_stream,0); Sockaddr_in Addrser; Bzero (& (Addrser),sizeof(Addrser)); addrser.sin_family = af_inet; Addrser.sin_port = htons (port); ADDRSER.SIN_ADDR.S_ADDR = inet_addr (IP); socklen_t len =sizeof(sockaddr_in);intRet = Connect (SOCKCLI, (sockaddr*) &addrser,len);if(Ret! =0) {Close (SOCKCLI);return-1; }Charserbuff[]="Liuhuiyan";Charclibuff[255]; while(1) {Write (Sockcli,serbuff,strlen(Serbuff) +1); Read (Sockcli,clibuff,sizeof(Clibuff));cout<<clibuff<<endl; Sleep1); }return 0;}
//makefileSER =ser cli =cli cc=g++ Status=-gall: $ (cli ) $ ( ser ) all$ (ser ): $ (ser ) .cpp @$ (CC)-O [email protected] $^ $ (Status) $ (cli ): $ (cli ) .cpp @$ (CC)-O [email Protected] $^ $ (Status) cleanclean: rm-rf *.O $ (ser ) $ (cli )
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Select network communication in Linux