网络高手请近,@@@,只要能解决问题,多少分都给阿!高手,救我啊!!!!!!
本人最近写了一个程序,其总包含一个视频包转发功能。
while(dwDataLength > 0)
{
dwAct = Min<DWORD>(m_dwUDPTransMaxLength,dwDataLength);
SOCK_INFO * Pointer = m_SockInfoHead;
for(;Pointer != NULL;Pointer = Pointer->Next)
{
sendto(Pointer->Socket,(const char*)pbuf,dwAct,0,
(SOCKADDR*)&(Pointer->RemoteAddr),sizeof(SOCKADDR));
}
pbuf += dwAct ;
dwDataLength -= dwAct ;
}//end while
刚开始一切运行正常,当有客户端接入时,m_SockInfoHead不为空,则向这个客户端发送视频,可是过了5分钟,出现内存上涨持续的情况。接下来结束客户端的连接,这时m_SockInfoHead为空。内存停止涨动。再接入同样会上涨.....
另一种情况是将Sendto函数屏蔽掉,就让For干循环,这时就不会发生内存上涨的情况。
请问各位大哥高手,难道sendto 有什么问题吗,使用时要注意什么吗?谢谢了,真的多少分都给,不过我还有2000分了,请帮帮我。!!!!跪求!!!!