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错误弹出? 展开
if (!m_pSocket->Create())
{
delete m_pSocket;
m_pSocket = NULL;
int x = GetLastError();
CString str;
str.Format("套接字错误 %d",x);
AfxMessageBox(str);
}
在运行一段时间后(具体多长时间不定),提示套接字错误 10055
10055是什么意思啊,我应该怎么处理我的程序,能保证不出问题呢?
什么问题导致的10055错误弹出? 展开
1个回答
展开全部
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端口是一种有限资源,如果使用不释放,迟早用光光。
由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作。
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对象,而不是关闭端口。
你的端口一定是在别的地方使用完了没关闭导致的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询