Golden Blonde 发表于 2015-4-2 16:33:18

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

只说个思路,具体代码参见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

0xAA55 发表于 2015-4-2 22:48:51

那这样的话就是有多少个会话就有多少个线程咯。。。
对于常见的512 MB RAM,那要调整好栈大小。
一个比较好的办法是先创建好固定数量的线程数,然后挂起所有的线程,之后主线程将非阻塞SOCKET一个一个传给别的线程即可。。。
页: [1]
查看完整版本: [笔记]最简单的『多CLIENT单SERVER』模型(非IOCP)