gpt4 book ai didi

c - 没有线程和阻塞套接字 - 是否可以处理多个连接?

转载 作者:行者123 更新时间:2023-11-30 17:20:41 25 4
gpt4 key购买 nike

我有一个程序需要:

  • 处理 20 个连接。我的程序将在每个连接中充当客户端,每个客户端连接到不同的服务器。
  • 连接后,我的客户端应该每秒向服务器发送一个请求并等待响应。如果9秒内没有发送请求,服务器将导致客户端超时。
  • 一个连接导致其他连接出现问题是 Not Acceptable 。
  • 我无权访问线程,也无权访问非阻塞套接字。我有一个带有阻塞套接字的单线程程序。
  • 编辑:我无法使用线程和非阻塞套接字的原因是我使用的是非标准系统。我有一个可用的 RTOS(实时操作系统)任务。

要解决这个问题,需要使用 select,但我不确定它是否足够。

最初我连接到所有客户端。但是 select 只能用于查看读取或写入是否会阻塞,而不能用于查看连接是否会阻塞。因此,当我连接到 2 个客户端并且它们都在等待服务时,如果第 3 个客户端不起作用怎么办,连接将阻塞,导致前 2 个连接也超时。

这个问题能解决吗?

最佳答案

我认为可以通过为连接操作设置超时来解决连接问题,这样它就会足够快地失败。当然,如果网络确实正常工作,这会限制您,但是您到某些服务器的路径非常长(慢)。这是糟糕的设计,但您的要求非常苛刻。

参见this answer有关连接超时的详细信息。

关于c - 没有线程和阻塞套接字 - 是否可以处理多个连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28479827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com