|
|
recv()函数如果第四个参数为0是不是阻塞方式?
如果是,第四个参数为MSG_WAITALL还有什么用,这个也是阻塞方式.
如果是,那么书上说recv()第4参数为0时就相当于read(),那么read()是阻塞方式吗?
//server.cpp
int sockid;
char buf[100];
char rbuf[100];
.................. //sock连接.
do
{
printf("please input Message:"):
scanf("%s",buf);
send(sockid,buf,sizeof(buf),0);
recv(sockid,rbuf,sizeof(rbuf),0);
printf("Clent said:%s",rbuf);
}while(1);
//client.cpp
int sockids;
char buf[100];
char rbuf[100];
......................//sock连接
do
{
recv(sockids,rbuf,sizeof(rbuf),0);
printf("Server siad:%s",rbuf);
printf("please input Message:");
scanf("%s",buf);
send(sockids,buf,sizeof(buf),0);
}
[quote]
这点代码可以实现(注意顺序,一定不能乱,乱了就错了)
server发消息,一定要server方先发.
client接收消息后,再输入消息,client发消息
server接收消息后,再输入消息,server发消息
client接收消息后,再输入消息,client发消息
.....................
也就是这样一直下去...很显示,证明了recv()函数第4个参数加0时就为阻塞方式.我说的对吗? |
|