VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 165|回复: 2

完成端口不可以用在客户端吗?只能用服务器?

[复制链接]
35_avatar_middle
最佳答案
0 
online_vip 发表于 2020-2-7 14:00:28 | 显示全部楼层 |阅读模式
本帖最后由 cheating_plugin 于 2020-2-7 14:11 编辑

我是这样想的,完成端口CreateIoCompletionPort绑定,GetQueuedCompletionStatus负责等待响应,这样的话,我建立N个客户端,每个用CreateIoCompletionPort绑定,之后用GetQueuedCompletionStatus等待,是否可行?

意思:A、B是客户端,F是服务器,C、D、E也是服务器。
A和B 连接 F,之后把数据发给F,之后F所在的执行程序.exe建立一个客户端,这客户端连接C,再建立一个客户端连接D,再者E
相当于F是中转端的执行程序。
这中间怎么个中转法?




上一篇:新创建的MFC工程编译时报错
下一篇:mfc编辑框中显示系统本地时间
35_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-7 14:22:42 | 显示全部楼层
讲真的,这转发不晓得用什么方法好,F服务器用完成端口来写的,当客户端A连接服务器F的时候,难道F所在的服务器.exe创建 new 一个客户端去连接服务器C?但是完成端口是IO异步的,会不会产生其他问题?还是数据send和recv呢?当A连接F的时候,在SO_ACCPET这里 new client一个客户端出来去连接服务器C?之后用链表保持 刚才new client出来的客户端,如果A有数据发送的时候,在SO_RECEIVE这里,client->send给服务器C;如果服务器C发送数据给client->recv,client->F.server->WSASend给客户端A。

这样可以吗?就怕是IO异步,会出来想不到的问题。
51_avatar_middle
最佳答案
82 
online_admins 发表于 2020-2-7 21:25:50 | 显示全部楼层
客户端也可以用完成端口,但是本身完成端口是针对高并发,多连接的情况,所以用在客户端对于性能提升不是很大。本身服务器是一对多,客户端都是一对一,或者一对二,等等,所以感觉客户端对于完成端口的需求不是很必要
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

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

关闭

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

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

GMT+8, 2020-9-27 14:18

Powered by CcTry.CoM

© 2009-2020 cctry.com

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