使用recv从服务器端接收时,怎么知道服务器端是否发送完毕?

在编写一个电子邮件应用,再与SMTP服务器通话时,必须要等待服务器端的回话完毕后,才可以发下一条指令,我怎样了解服务器的状态?
[63 byte] By [Keyser] at [2008-1-6]
# 1
recv是个阻塞的函数吗(不接收到不返回?)?

如果是,有没有可替代的非阻塞的函数?
Keyser at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,网络通信...
# 2
查到了,recv是阻塞函数,且可以通过ioctlsocket()解除阻塞,或setsocketopt设置超时。

来个人接分吧。
Keyser at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,网络通信...
# 3
接个分
KeyserOnMySelf at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,网络通信...