|
楼主 |
发表于 2009-8-3 15:38:16
|
显示全部楼层
SOCKET连接应没有关. 在initia_read_stream中, 我有判断.
int
Client::initiate_read_stream (void)
{
if (this->flg_cancel_ != 0 || this->handle_ == ACE_INVALID_HANDLE)
return -1;
ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
ACE_Message_Block (1024), //BUFSIZ + 1),
-1);
// Inititiate read
if (this->rs_.read (*mb, mb->size()-1) == -1)
{
mb->release (); 如果失败, 会打下面的
// On peer close, ReadFile will yield ERROR_NETNAME_DELETED; won't get
// a 0-byte read as we would if underlying calls used WSARecv.
if (ACE_OS::last_error () == ERROR_NETNAME_DELETED)
ACE_ERROR_RETURN ((LM_DEBUG,
ACE_TEXT ("(%t) Server %d, peer closed\n"),
this->id_),
-1);
}
} |
|