SendRequest 操作超时 有关问题,请大侠帮助解决,多谢

SendRequest 操作超时 问题,请大侠帮助解决,谢谢!
在一个多线程程序里面,同时启动2个以上的线程去服务器请求就会出现   操作超时,错误号12002,而这个问题在我自己的开发机器上没有出现,可以支持6个线程,但是部署到服务器上,最多支持2个,第3个线程调用SendRequest,就会出现异常,返回的异常字符串就是   “操作超时”,错误号12002。

HTTPTRANS_API   int   PostData(char   *pszData,   int   nLength,   int   id)
{
int   nFind   =   0;
::WaitForSingleObject(m_hMutex,   INFINITE);
map <int,   P_HTTPSESSION_MANAGE> ::iterator   itetMap   =   mapSessionMg.find(id);
if   (itetMap   !=   mapSessionMg.end())
{
nFind   =   1;
}
::ReleaseMutex(m_hMutex);

if   (nFind   ==   0)  
return   -100;

if   (pszData   ==   NULL)
{
return   -1;
}
try
{
DWORD   dwRet   =   0;
char   *pszHeader   =   "Accept:   application/vnd.syncml+xml,   application/vnd.syncml+wbxml,*\/*\r\nContent-Type:   application/vnd.syncml+xml;\r\nAccept-Charset:   \ "utf-8\ "\r\n ";

//   MessageBox(NULL, "1 ", "1 ",0);

{
char   buf[1024]   =   {0};
sprintf(buf,   "id=%d     111111 ",   id);
WriteLog(buf);
}
BOOL   bRet   =   itetMap-> second.pFile-> SendRequest(pszHeader,   strlen(pszHeader),   pszData,   nLength);
{
char   buf[1024]   =   {0};
sprintf(buf,   "id=%d     2222222 ",   id);
WriteLog(buf);
}
if(bRet==FALSE)
{
return   -2;
}

{
char   buf[1024]   =   {0};
sprintf(buf,   "id=%d     333333 ",   id);
WriteLog(buf);
}
int   ret   =   itetMap-> second.pFile-> QueryInfoStatusCode(dwRet);
if   (ret   ==   0)
{
int   err   =   GetLastError();
return   -3;
}
{
char   buf[1024]   =   {0};
sprintf(buf,   "id=%d     4444444 ",   id);
WriteLog(buf);
}

if(dwRet   !=   HTTP_STATUS_OK)
{
return   -4;
}
//WriteLog( "开始接收数据:----------------------------------------------- ");
int   nReadLen   =   1024;
itetMap-> second.len   =   0;

{
char   buf[1024]   =   {0};
sprintf(buf,   "id=%d     555555 ",   id);
WriteLog(buf);
}

memset(itetMap-> second.pData,   0,   MAX_SEND_PACK_SIZE);
while   (nReadLen   ==   1024)
{
{
char   buf[1024]   =   {0};
sprintf(buf,   "id=%d     666666 ",   id);
WriteLog(buf);
}

nReadLen   =   itetMap-> second.pFile-> Read(&(itetMap-> second.pData[itetMap-> second.len]),   1024);
if(   nReadLen   >   0)
{
itetMap-> second.len   +=   nReadLen;
}

{
char   buf[1024]   =   {0};
sprintf(buf,   "id=%d     777777     second.len=%d     nReadLen=%d ",   id,   itetMap-> second.len,   nReadLen);
WriteLog(buf);
}
}
}
catch   (CInternetException   *pE)
{
char   buf[1024]   =   {0};