tcp并发服务器实现eth0功能

tcp并发服务器实现eth0功能,第1张

大家都知道各类网络服务器程序的编写步骤,并且都知道网络服务器就两大类:循环服务和并发服务。这里附上源代码来个小结吧。
一、 循环服务
循环网络服务器编程实现的步骤是这样的:
建立socket(这里用到socket()函数及函数setsockopt())
|
|
\|/
把socket和IP地址及端口绑定(这里用到bind函数)
|
|
\|/
开始监听(这里用到listen()函数)
|
|
/\
/ \
\ / \
----------------------- | 有连接|
| / \ /
| \ /
| \ /
| |
| 接受新的连接(这里用到accept()函数)
| | /___________________________________________________
| | \ |
| \|/ |
| 从连接里读取数据(这里用到recv()系统函数,当然也可以是read()函数) |
| | |
| | |
| \|/ |
| 返回信息给连接(这里用到send()系统函数,当然也可以是write()函数) |
| | |
| | |
| /\ |
| / \ |
| / \ |
| | 还有数据 |-Y-------------------------------------------------------
| \ /
| \ /
| \ /
|_______________________________|
这种服务器模型是典型循环服务,如果不加上多进程/线程技术,此种服务吞吐量有限,大家都可以看到,如果前一个连接服务数据没有收发完毕后面的连接没办法处理。所以一般有多进程技术,对一个新连接启用一个新进程去处理,而监听socket继续监听。
/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10566063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存