VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 106|回复: 1

完成端口 SO_RECEIVE 内存增高的问题。

[复制链接]
35_avatar_middle
最佳答案
0 
online_vip 发表于 2020-2-13 02:21:21 | 显示全部楼层 |阅读模式
在完整端口的 SO_RECEIVE 这里,当接收到 数据时候,我就直接 PostSend 发给原客户。



bool  PostSend (......)
{
                        DWORD dwSend = 0;
                        IOCP_OVER_DATA* pOverData = new IOCP_OVER_DATA;
                        pOverData->m_Socket = (*it)->m_Socket;
                        pOverData->operation = SO_SEND;
                        pOverData->wsaBuf.buf = pOverData->szBuffer;
                        pOverData->wsaBuf.len = iLen;
                        int iRet = WSASend(
                                pOverData->m_Socket,
                                &pOverData->wsaBuf,
                                1,
                                &dwSend,
                                0,
                                &pOverData->over,
                                NULL);

}

之后后面加上 这个。
int iRet = WSARecv(
                                pOverlapped->m_Socket,
                                &pOverlapped->wsaBuf,
                                1,
                                &dwBytesRecv,
                                &dwFlags,
                                &pOverlapped->over,
                                NULL);

发送是怎么写的

之后在
case SO_SEND:
        delete pOverlapped; 删除了。


我做了一个测试,我开10条线程,连续的链接 发送数据 再关闭。就这样循环。

不知道为什么内存一直在缓慢的增加。

但是如果我把 SO_RECEIVE 的PostSend给注释掉的话,就不会增加了,这是为什么?

是不是说,不能在 SO_RECEIVE 里面直接发送给原客户端?




上一篇:要如何调出这个部件出来,我的2013根本调不出这个东西来,谢谢
下一篇:实用C++的第21课作业求解!
35_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-13 02:28:18 | 显示全部楼层
本帖最后由 cheating_plugin 于 2020-2-13 02:29 编辑

简单的来说,就是:
case SO_SEND:
        delete pOverlapped;
        break;
case SO_RECEIVE:
        PostSend(presocket->socket,pvole->szbuf,dwsize);//PostSend 函数里面是WSASend
        
       WSARecv(.....,&pvole->ov);

当接收到客户端发来的数据,直接WSASend回去,再WSARecv。

有什么问题吗? 内存一直在增加,虽然很慢。


但如果我把 //PostSend(.....);给注释掉的话,内存就不会增加了。


这是什么问题?

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-7-3 20:44

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表