社区
网络编程
帖子详情
VC socket连接池?
【天运子】
2010-05-13 09:08:58
谁懂的,有相关的源代码吗?有的行行好。发我份。
要改善下我的程序,以应对在很多客户端的情况下,去接受保留套接字。
好人。。。
...全文
823
29
打赏
收藏
VC socket连接池?
谁懂的,有相关的源代码吗?有的行行好。发我份。 要改善下我的程序,以应对在很多客户端的情况下,去接受保留套接字。 好人。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tech_study_00
2010-06-07
打赏
举报
回复
why not queue rather than list?
【天运子】
2010-06-03
打赏
举报
回复
用链表完成啦-
【天运子】
2010-05-21
打赏
举报
回复
[Quote=引用 24 楼 yitang2003 的回复:]
给我一个邮箱,我学习IOCP时,编写过DEMO
[/Quote]QQ284875005
yitang2003
2010-05-21
打赏
举报
回复
给我一个邮箱,我学习IOCP时,编写过DEMO
【天运子】
2010-05-21
打赏
举报
回复
[Quote=引用 22 楼 yitang2003 的回复:]
看看IOCP自然的就用到连接池了
[/Quote]你用过吗?给个例子可以吗 ?它就像一个容器把,用来存放套接字。我需要看看他怎么用的
yitang2003
2010-05-21
打赏
举报
回复
GF_WriteLog( "创建套接字失败,无法提交新的接收请求 ");
后增加delete [] pSend;
yitang2003
2010-05-21
打赏
举报
回复
程序片段
for (i = 0;i<MAX_SOCKET_ACCEPT;i++)
{
SubmmitNewAccep();
}
void CVideoSockServer::SubmmitNewAccep()
{
CVideoSockeSend * pSend = new CVideoSockeSend[1];
if(!pSend->InitClass())
{
GF_WriteLog("创建套接字失败,无法提交新的接收请求");
return;
}
st_OverLapped * pOver = G_Memery.GetData();
pOver->CMD = CMD_Accept;
pOver->lpSockSend = pSend;
AcceptEx(m_VideoSocketListen,pSend->GetSocket(),pOver->buff,0,sizeof(sockaddr_in)+16,sizeof(sockaddr_in)+16,NULL,(LPOVERLAPPED)&pOver->OverLapped);
每一个客户接入后,再次投递。实际上由IOCP维护连接池
}
【天运子】
2010-05-20
打赏
举报
回复
连接池 啊连接池
yitang2003
2010-05-20
打赏
举报
回复
看看IOCP自然的就用到连接池了
【天运子】
2010-05-19
打赏
举报
回复
连接池啊 没人用吗?
-海盗旗-
2010-05-17
打赏
举报
回复
美女的帖子 回复的人就是多啊
先看理论吧 告诉你也 你也未必能完全明白
【天运子】
2010-05-17
打赏
举报
回复
没人做过类似的 ?要是有N个客户端 连接,服务端用什么接受套接字的呢 ?大家都是怎么解决的?
【天运子】
2010-05-17
打赏
举报
回复
[Quote=引用 17 楼 kevin_zcwen 的回复:]
<!--发送端先发送文件列表(文件的大小和一些属性)给接收端-->
发送端在这时候一定是新起一个线程吧,监听和接收发送不应该用同一个线程吧
然后<!--发送端接受到消息后,创建发送线程-->
这里你有必要再创建发送线程么?之前给接收端发送文件列表(文件的大小和一些属性)这个线程不可以继续用吗?因为你自己封装的消息已经包含了很多信息的啊
一起等高手解答?
[/Quote]
我的是短连接。就是每次通信需要连接,所以发送和接受时分别一个线程,但是都要重新监听 连接
tech_study_00
2010-05-17
打赏
举报
回复
not so complex, search code on the website: www.codeproject.com
弱水垂钓
2010-05-17
打赏
举报
回复
<!--发送端先发送文件列表(文件的大小和一些属性)给接收端-->
发送端在这时候一定是新起一个线程吧,监听和接收发送不应该用同一个线程吧
然后<!--发送端接受到消息后,创建发送线程-->
这里你有必要再创建发送线程么?之前给接收端发送文件列表(文件的大小和一些属性)这个线程不可以继续用吗?因为你自己封装的消息已经包含了很多信息的啊
一起等高手解答?
【天运子】
2010-05-17
打赏
举报
回复
[Quote=引用 15 楼 kevin_zcwen 的回复:]
双向传输:就是既可以从服务器端传输数据到客户端,也可以从客户端传输数据到服务器端
带宽:在同一时间你传输数据量准定会有一个限制,就像你用的宽带,假设是2M的话那你同一时间传输的数据量不会超过2M
说实话我也刚入门VC不久
问你几个问题啊
1.你说的客户端需要先连接到服务器端吗?还是不需要连接你有一个类似于列表的东西可以直接选的(比方说直接从数据库中提取)如果是不需要的话你整体的系统……
[/Quote]
客户端先输入IP连接服务端,服务端可以在公网 或局域网都通过测试了,原理是,选择文件发送,发送端先发送文件列表(文件的大小和一些属性)给接收端,接收端接收到文件列表消息后,创建接受文件线程,线程里先发送一个消息给发送端(告诉发送端我已准备好接受文件),发送端接受到消息后,创建发送线程,开始发送文件内容,接收端接受文件内容。我的是短连接,也就是在每次发送或接受线程里面都重新连接与监听
弱水垂钓
2010-05-17
打赏
举报
回复
双向传输:就是既可以从服务器端传输数据到客户端,也可以从客户端传输数据到服务器端
带宽:在同一时间你传输数据量准定会有一个限制,就像你用的宽带,假设是2M的话那你同一时间传输的数据量不会超过2M
说实话我也刚入门VC不久
问你几个问题啊
1.你说的客户端需要先连接到服务器端吗?还是不需要连接你有一个类似于列表的东西可以直接选的(比方说直接从数据库中提取)如果是不需要的话你整体的系统就变成了客户端(你所说的服务器端)->服务器端(原来的客户端)的架构了,这样的话我觉得直接用多线程就可以完成你要做的吧(可能线程数要相对多一些),传送的数据是固定的,客户端的地址信息什么的可以直接从队列里取().
如果是需要的话,我猜想你的设计是:服务器端一旦接收到客户端请求就给客户端发送一个文件
接收到请求后:你当然会用多线程来做,但是你在起线程前先判断一下是否有空闲的连接可以用,有的话就可以直接用这个连接来发送文件了,但是这么设计会有一个问题就是:发送数据时文件映射的次数, 也就是我在问题2里说的,所以我觉得你的设计应该是在确认连接到服务器端的客户端信息之后.再映射文件,最后依次发送给客户端.
2.你是做文件传输,那你在传输数据的时候是每个线程里来完成文件映射再传送呢?还是先映射完了再发到每个线程里传输?
3.是在一台电脑上做的测试吗?
如果是一台的话我觉得还是可以接收"客户端一多服务器就CPU高"的问题
【天运子】
2010-05-17
打赏
举报
回复
[Quote=引用 13 楼 kevin_zcwen 的回复:]
双向传输?单向传输(服务器->客户端||客户端->服务器)?带宽问题考虑到了?
[/Quote]双向传输 带宽是何意思?用的是TCP协议,程序能运行,传输也成功,就是现在不是用连接池的方法接受客户端的套接字的 ,客户端一多服务器CPU就会很高。听人说可以用连接池
弱水垂钓
2010-05-17
打赏
举报
回复
双向传输?单向传输(服务器->客户端||客户端->服务器)?带宽问题考虑到了?
【天运子】
2010-05-17
打赏
举报
回复
[Quote=引用 11 楼 qidahai985615 的回复:]
美女的帖子 回复的人就是多啊
先看理论吧 告诉你也 你也未必能完全明白
[/Quote]理论还怎么看?我程序已经运行成功了,只是中间会出现失败,我做的是文件传输。
加载更多回复(9)
MyLinuxThread__
Vc
_
socket
c#_源码
在这个项目中,多线程池被用于动态分配任务,即每当有新的客户端连接请求时,服务器会从线程池中取出一个空闲线程来处理请求,而非每次都创建新线程,这样可以避免频繁创建和销毁线程带来的开销。 线程池的设计通常...
lua
socket
支持lua
SOCKET
编程
对于大规模的网络应用,可能需要考虑
连接池
、缓冲区管理等策略来提升性能。Lua
Socket
的API设计灵活,允许你根据需求进行定制。 总结,Lua
Socket
是Lua网络编程的重要工具,结合其轻量级、易于理解和强大的功能,...
Socket
_taste4za_
Vc
_
"
Socket
_taste4za_
Vc
_"这个项目显然关注的是如何在不依赖Microsoft Foundation Class (MFC)库的情况下,用
VC
++(Visual C++)实现对
Socket
API的封装。下面,我们将深入探讨这个主题,并详细讲解相关的知识点。 ...
灵活方便的TCP/IP
Socket
服务端及客户端工具
9. **性能优化**:对于高性能服务器,可能会涉及到
连接池
、缓冲区管理、非阻塞I/O等技术来提升处理效率。 综上所述,这个工具提供了对TCP/IP
Socket
通信的便捷调试手段,帮助开发者在
VC
6环境中理解和测试网络通信的...
socket
linux c++ 多线程3
"
VC
实现IOCP的
Socket
服务器高效的
Socket
服务器,基于IOCP,用到了线程池、内存池等技术。.rar"则可能探讨了I/O完成端口(IOCP)技术,这是在Windows中实现高效率
Socket
服务器的一种方法,虽然不直接适用于Linux,但...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章