vc++ socket编程问题

我建立了一个CSocketm_pSocket变量,建立成功后if(!m_pSocket->Create()){deletem_pSocket;m_pSocket=NULL... 我建立了一个CSocket m_pSocket变量,建立成功后
if (!m_pSocket->Create())
{
delete m_pSocket;
m_pSocket = NULL;
int x = GetLastError();
CString str;
str.Format("套接字错误 %d",x);
AfxMessageBox(str);
}

在运行一段时间后(具体多长时间不定),提示套接字错误 10055

10055是什么意思啊,我应该怎么处理我的程序,能保证不出问题呢?

什么问题导致的10055错误弹出?
展开
 我来答
khlerc
2013-10-21 · TA获得超过420个赞
知道小有建树答主
回答量:485
采纳率:0%
帮助的人:272万
展开全部
WSAENOBUFS:
由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作。

WSAENOBUFS
10055 (0x2747)
An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms681391(v=vs.85).aspx

不太可能是系统缓冲区满导致的问题,而是socket队列已满导致的问题,socket端口是一种有限资源,如果使用不释放,迟早用光光。
追问
我已经用delete了啊,怎么还会出现这样的问题呢?

能帮忙解释一下吗?我查了,结果就是你说的那种,可是遇到这样的问题,我需要怎么解决呢?
追答
你上面这段代码打开端口失败,所以不是这儿引起的,而且你delete是delete m_pSocket对象,而不是关闭端口。

你的端口一定是在别的地方使用完了没关闭导致的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式