卟留遗憾灬

卟留遗憾灬

0个粉丝

22

问答

4

专栏

321

资料

卟留遗憾灬  发布于  2020-08-07 16:40:56
采纳率 0%
22个问答
2134

tcp服务器与客户端线程资源占用问题

 

一个client去连接连接一个server端,server端往往需要等待客户端的访问,那么如果此时我们使用阻塞模式的话,如果只使用一个线程的话,如果此时第一个连接过来了,那么你调用了recv()函数,阻塞在等待消息这里,此时如果第二个客户端连接的话,因为你的程序一直在这里等着,无法处理这个连接请求,那么此时你的连接数量是1.那么如果我们使用对线程机制,对每个客户端都使用一个线程,那么如果有大量的客户连接的话,服务端就要创建大量的线程,linux操作系统本身对文件描述符的个数有限制,即使没有限制,大量的线程创建和套接字创建也会消耗linux的资源。怎么解决这个问题?

我来回答
回答1个
时间排序
认可量排序

卟留遗憾灬

0个粉丝

22

问答

4

专栏

321

资料

卟留遗憾灬 2020-08-07 16:42:18
认可0

多路复用能解决这个问题,会采用轮询的方式对每一个客户端套接字访问.多路复用就是可以在一个线程中监测多个套接字,比如select,poll,epoll,当这些套接字(文件描述符)中的任意一个进入有数据到来,以上三个函数就会返回,之后进入数据处理状态。

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区