最近写一个关于pop3接收邮件方面的程序,老是出现连接不成功,代码如下:
其中pop3是继承CAsyncSocket类,pop3.connect()出问题,GetLastError()得到的返回值是10035(WSAEWOULDBK),我想是不是没有采用阻塞模式(因为是CAsyncSocket继承类)所以在pop3.connect()前加了如下两条语句:
pop3.AsynSelect(0);
pop3.IoCtl(FDIONB,0);
还是在connect()步出现问题,去掉pop3.AsynSelect(0),也不行,代码如下:
pop3.Create();
pop3.AsynSelect(0);
pop3.IoCtl(FDIONB,0);
if(!pop3.Connect((LPCSTR)m_strServer,110))
AfxMessageBox("Connect server fail"); //连接服务器
TCHAR errMsg[2048] = {0};
sprintf((char*)errMsg,"%d",GetLastError());
AfxMessageBox((LPCTSTR)errMsg);
望高人指点如何做,在线等,谢谢了!
其中pop3是继承CAsyncSocket类,pop3.connect()出问题,GetLastError()得到的返回值是10035(WSAEWOULDBK),我想是不是没有采用阻塞模式(因为是CAsyncSocket继承类)所以在pop3.connect()前加了如下两条语句:
pop3.AsynSelect(0);
pop3.IoCtl(FDIONB,0);
还是在connect()步出现问题,去掉pop3.AsynSelect(0),也不行,代码如下:
pop3.Create();
pop3.AsynSelect(0);
pop3.IoCtl(FDIONB,0);
if(!pop3.Connect((LPCSTR)m_strServer,110))
AfxMessageBox("Connect server fail"); //连接服务器
TCHAR errMsg[2048] = {0};
sprintf((char*)errMsg,"%d",GetLastError());
AfxMessageBox((LPCTSTR)errMsg);
望高人指点如何做,在线等,谢谢了!
解决方案 »
- 自己编制的语言的编译解释辩错。
- 一个工作者线程在PutFile()时阻塞了,不能继续下去,有什么方法可以结束这个线程呀
- 想学WINDOWS SOCKET 编程,不知道从何学起??
- 编译错误
- hr = m_pConnection.CreateInstance("ADODB.Connection");为什么不成功
- 为什么我用dreamweaver时不能插入表格和描绘层?
- 请教一个问题!
- GDI+画图问题,如何用Graphics画图。
- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<在CListCtrl中的每个SubItem中显示文字或数据都距离这个SubItem的左边有大概半个字符的空间,特别占地方,如何能让SubItem的左边和右边都不留空?!
- 我的硬盘主引导分区损坏!请问如何恢复!
- 简单的SDK问题。WM_PAINT为什么不起作用了
- [在线即时结贴]急。。。如何CEditView视图中显示的文字存储到一个CString数组中?高手请进!!!
pop3.Create();
pop3.AsynSelect(0);
pop3.IoCtl(FDIONB,0);
pop3.Connect((LPCSTR)m_strServer,110);
//这路要等待,然而不能使用Sleep,因为需要消息响应,一般来说,可以进行消息循环,直到OnConnect函数被调用;
while (!m_bConnected)
{
MSG msg;
if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (!::AfxGetApp()->PreTranslateMessage(&msg))
{
if (!::TranslateMessage(&msg)) ::DispatchMessage(&msg);
}
}
}
...void CMySocket::OnConnect(int nErrorCode)
{
if (nErrorCode == 正确)
{
m_bConnected = true;
}
}