找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 5824|回复: 1

[笔记]最简单的『多CLIENT单SERVER』模型(非IOCP)

[复制链接]

55

主题

275

回帖

9356

积分

用户组: 管理员

UID
77
精华
16
威望
237 点
宅币
8221 个
贡献
251 次
宅之契约
0 份
在线时间
255 小时
注册时间
2014-2-22
发表于 2015-4-2 16:33:18 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
只说个思路,具体代码参见AA55的TCP和UDP教程

1.CLIENT只管connect指定IP:端口,成功后send+recv。
2.SERVER在主线程里一直listen端口,listen成功后新建一个子线程,把socket传给子线程,让子线程去执行send+recv。

这种模型最大的好处就是简单容易理解+方便移植(兼容NT+UNIX),最大的坏处就是开销过大效率低下。
为了解决这种弊端,于是有了SELECT模型:https://www.0xaa55.com/forum.php?mod=viewthread&tid=14837
回复

使用道具 举报

1112

主题

1653

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
245
威望
744 点
宅币
24257 个
贡献
46222 次
宅之契约
0 份
在线时间
2298 小时
注册时间
2014-1-26
发表于 2015-4-2 22:48:51 | 显示全部楼层
那这样的话就是有多少个会话就有多少个线程咯。。。
对于常见的512 MB RAM,那要调整好栈大小。
一个比较好的办法是先创建好固定数量的线程数,然后挂起所有的线程,之后主线程将非阻塞SOCKET一个一个传给别的线程即可。。。
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-29 11:24 , Processed in 0.034299 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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