在我的程序里有一个tcp服务器端线程,普通情况下没有问题,但是某台机器上启动该线程时,在listen时,出现了10055错误,请问我该如何解决该问题,应该检查该台机器的那些参数?服务器端程序
启动服务器线程 CSockAddr sd(INADDR_ANY,*(USHORT*)pParam);
CBlockingSocket socketoftcp;
CWinThread* pWinThread=NULL;
CBlockingSocket* pSocket=NULL;
try {
socketoftcp.Create();
socketoftcp.Bind(sd);
socketoftcp.Listen(20);
if(hEventTcpSuccess != NULL) {
SetEvent(hEventTcpSuccess);//成功事件
}
类CBlockingSocket的几个主要函数
CBlockingSocket::CBlockingSocket()
{ m_hSocket = NULL; }void CBlockingSocket::Create(int nType /* = SOCK_STREAM */)
{
ASSERT(m_hSocket == NULL);
m_hSocket = socket(AF_INET, nType, 0);
if(m_hSocket == INVALID_SOCKET) {
throw new CBlockingSocketException("Create");
}
}void CBlockingSocket::Bind(LPCSOCKADDR psa)
{
ASSERT(m_hSocket != NULL);
if(bind(m_hSocket, psa, sizeof(SOCKADDR)) == SOCKET_ERROR) {
throw new CBlockingSocketException("Bind");
}
}void CBlockingSocket::Listen(int nConnect)
{
ASSERT(m_hSocket != NULL);
if(listen(m_hSocket, nConnect) == SOCKET_ERROR) {
throw new CBlockingSocketException("Listen");
}
}
启动服务器线程 CSockAddr sd(INADDR_ANY,*(USHORT*)pParam);
CBlockingSocket socketoftcp;
CWinThread* pWinThread=NULL;
CBlockingSocket* pSocket=NULL;
try {
socketoftcp.Create();
socketoftcp.Bind(sd);
socketoftcp.Listen(20);
if(hEventTcpSuccess != NULL) {
SetEvent(hEventTcpSuccess);//成功事件
}
类CBlockingSocket的几个主要函数
CBlockingSocket::CBlockingSocket()
{ m_hSocket = NULL; }void CBlockingSocket::Create(int nType /* = SOCK_STREAM */)
{
ASSERT(m_hSocket == NULL);
m_hSocket = socket(AF_INET, nType, 0);
if(m_hSocket == INVALID_SOCKET) {
throw new CBlockingSocketException("Create");
}
}void CBlockingSocket::Bind(LPCSOCKADDR psa)
{
ASSERT(m_hSocket != NULL);
if(bind(m_hSocket, psa, sizeof(SOCKADDR)) == SOCKET_ERROR) {
throw new CBlockingSocketException("Bind");
}
}void CBlockingSocket::Listen(int nConnect)
{
ASSERT(m_hSocket != NULL);
if(listen(m_hSocket, nConnect) == SOCKET_ERROR) {
throw new CBlockingSocketException("Listen");
}
}
解决方案 »
- MFC中,头文件中用#include"…"包含某个.h文件,和在源文件中用#include"…"包含某个.h文件的区别
- [求助]数据实时显示问题
- 牛问题,vc有经验的进。
- VS2005的additional library directory的设置问题?
- 本人有6年C++开发经验,在百度办了一个blog,希望大家赏光,共同促进提高。
- 跪求答案!!救救我把,内存问题!!谢谢各位!!在线等!!
- 关于得到HTML 501等类似错误网页的大小和修改日期~
- 【讨论】项目设计与实现,编程思想,编程理念的讨论
- 如何改变AfxMessageBox时候弹出的窗口的标题?
- 求splash(启动窗口)事例(要求图片覆盖对话框)
- 新年好~~握有2个非常棘手的问题,有大家指点。。。。
- 怎样用VC++远程连接数据库,各位高手帮帮忙!!
10055错误内容是:一个socket操作不能执行,原因是系统缺少足够的缓冲空间,或者是队列已满。
http://board.verycd.com/t154117.html
http://202.98.116.70:888/cgi-bin/newmov/bbs/topic.cgi?forum=24&topic=10246
以上连接均是对10055的提问和网友的回答。看看有没有有效的
不要拿ErrorLookup中寻找得东西来唬小朋友!!
什么缓存???那个队列你要给人说清楚啊