好象recv之类的函数返加收到的字节为零就说明连接关闭了吧
解决方案 »
- 关于CLIST类中AddTail的问题。
- VC 多线程和定时器打开窗口问题
- [问题]请问 C++ 中像 JUnit, NUnit 一样的测试工具是什么
- 高手请教:能不能(如何)把其他的应用程序界面(如QQ)嵌入到自己的窗口里运行
- 哪里可以下载MSDN呀?
- 请问计算机在没有鼠标和键盘的情况下,是否可以正常工作???
- 我用netscape要保存网页,但是用File->Save as的话,它保存下来的网页我无法用合适程序打开?怎么能像IE下那样保存成各种格式?谢谢
- 关于跨越线程更新UI的问题,在线等!!急,高手帮帮我啊
- win2000下编程实现创建和删除用户组和用户......?
- 谁知道如何让edit在read-only的时候不变灰
- kernel32 有几个版本,RegisterServiceProcess 在何处?
- 送分测试1
是不是影响速度
2.send 后使用GetLastError,如为WSAESHUTDOWN 则表示SOCKET已关闭。
// derived from CAsyncSocket
{
static int i=0; i++; TCHAR buff[4096];
int nRead;
nRead = Receive(buff, 4096);
switch (nRead)
{
case 0:
Close();
break;
case SOCKET_ERROR:
if (GetLastError() != WSAEWOULDBLOCK)
{
AfxMessageBox ("Error occurred");
Close();
}
break;
default:
buff[nRead] = 0; //terminate the string
CString szTemp(buff);
m_strRecv += szTemp; // m_strRecv is a CString declared
// in CMyAsyncSocket
if (szTemp.CompareNoCase("bye") == 0 ) ShutDown();
}
CAsyncSocket::OnReceive(nErrorCode);
}
如果对方直接把网线扯下来,你能得到OnReceive消息吗?
网线扯下,OnSend会出错