做一个server端怎么办才能收发数据
想做个server端,client连上了之后,如果我这里有数据发给client端就能send,如果client有数据过来就读,现在我只能读完了之后立刻回复一条,不能直接就给client发,有没有个小demo看看,这个是我accept之后做的事情
while(1)
{
timeout.tv_sec = 120;
timeout.tv_usec = 0;
FD_ZERO(&readset);
FD_SET(socket,&readset);
if(select(socket+1,&readset,NULL,NULL,&timeout) < 1)
{
close(socket);
trans->is_stop = 1;
return 0;
}
mylen=recv(socket,&buf,sizeof(buf),0);
if(mylen==-1)
{
puts("recv error");
return 0;
}
if(mylen>0)
{
puts("recv");
puts(buf);
readmsg(buf);
}
strcpy(sendbuf,"123");
len=strlen(sendbuf);
if(send(socket,&sendbuf,len,0) == -1)
{
close(socket);
trans->is_stop = 1;
return 0;
}
}