vc++ socket编程问题

我建立了一个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错误弹出?

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对象,而不是关闭端口。

你的端口一定是在别的地方使用完了没关闭导致的。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜