接受套接字函数超时

2024-03-17

我试图在接受套接字函数上设置超时,但没有成功。我希望接受功能块直到超时延迟结束。 是否可以不将接受函数设置为非阻塞? 我尝试了很多可能性都没有成功。

感谢您的回答。

下面是我的代码:

struct timeval tv;
fd_set readfds;

tv.tv_sec = 1;
tv.tv_usec = 0;

int s, s_remote;
struct sockaddr_un remote;
struct sockaddr_un local;

if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
  perror("socket");
  exit(1);
}

FD_ZERO(&readfds);
FD_SET(s, &readfds);

if (select(s+1, &readfds, NULL, NULL, &tv) > 0) {

  printf("Waiting for a connection...\n");

  memset(&local, 0, sizeof(local));
  local.sun_family = AF_UNIX;
  strcpy(local.sun_path, SOCK_PATH);
  unlink(local.sun_path);

  if (bind(s, (struct sockaddr *)&local, sizeof(local)) == -1) {
    perror("UnixSocketClient :: error bind.\n");
    close(s);
    return -1;
  }

  if (listen(s, 5) == -1) {
    perror("UnixSocketClient :: error listen.\n");
    close(s);
    return -1;
  }

  socklen_t remote_len = sizeof(remote);
  printf("Accept :\n\r");

  if ((s_remote = accept(s, (struct sockaddr *)&remote, &remote_len)) == -1) {
    perror("UnixSocket :: error accept.\n");
    return -1;
  }
  printf("Client accepted\n\r");
}

你的代码没有任何意义。您必须致电:

  • socket()
  • bind()
  • listen()
  • select()
  • accept()

以该顺序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接受套接字函数超时 的相关文章

随机推荐

  • 随机 PHP FastCGI / 连接被对等方重置 / 不完整的标头

    我一直在随机500 Internal Server我在各种共享主机上基于 PHP MySQL 的网站上出现错误 我在共享 Linux 服务器上通过 CGI FastCGI 使用 PHP 5 2 17 当我查看日志时 我看到以下内容 erro
  • 多个独立maven项目的通用测试数据

    我有一个 Maven 项目 可以将特定格式的文本文件转换为另一种格式 为了进行测试 我在 src test resources 中放入了大量的测试文件 我还有另一个项目 它使用第一个项目进行转换 然后对输出格式执行一些额外的操作 我还想针对
  • MongoDB:如何计算文档中键的数量?

    假设一个文档是 a 1 b 1 c 2 z 2 如何计算该文档中键的数量 谢谢 如果通过聚合框架使用 MongoDB 3 6 及更高版本 则完全有可能 使用 objectToArray https docs mongodb com manu
  • 在 matplotlib 中将多个饼图分解在一起

    我真的很喜欢 matplotlib 饼图上的 爆炸 选项 我希望能够 集体爆发 我正在绘制许多小切片 分为 3 或 4 类 我想将所有小切片作为组爆炸在一起 我认为这并不完全清楚 所以我呼吁我严重缺乏绘制基本形状的能力 并制作这张图片来展示
  • 如何使azure应用程序服务信任OnPrem CA颁发的证书?

    我正在尝试在 https 协议下使用来自 Azure APP 服务的本地 Web 服务 当我这样做时 我收到了错误 经验证远程证书无效 程序 这是有意义的 因为默认情况下 Azure 不必信任该服务 而是提供由 OnPrem CA 颁发的证
  • 使用 Swing 的 Java 聊天应用程序(概念)

    我想使用 Swing 作为界面用 Java 编写一个聊天应用程序 我想出了一个主意 在疯狂程序员 https stackoverflow com users 992484 madprogrammer 但我不确定这是否是解决此问题的最佳方法
  • 如何在linux下用c写一个http1.0代理服务器?

    我必须开发仅在 Linux 和 c 中使用 HTTP 1 0 的代理服务器 我需要一些提示才能开始开发 我假设您对使用 linux 和 c 语言有信心 没有任何提示 否则不要从开发代理开始 阅读并理解RFC 1945 HTTP 1 0 ht
  • 从低均值泊松分布中绘制数字的性能

    为了在C 中从泊松分布中抽取随机数 通常建议使用 RNG type rng std poisson distribution
  • 如何在 Visual Studio 中传递多个命令参数?

    我正在使用 LZMA SDK 开发一个压缩 解压缩项目 主程序包含一些我必须用来运行应用程序的参数 要从命令行运行它 我使用 LzmaUtil exe e input elf output elf 我正在使用 VS 2013 所以我添加了e
  • org.xml.sax.SAXParseException:src-resolve:无法将名称“repository:auditing-attributes”解析为(n)“属性组”组件

    在项目上运行 Maven 测试时出现以下错误 我正在使用 Spring Data Neo4j 构建一个测试应用程序 java lang IllegalStateException Failed to load ApplicationCont
  • 将双精度数转换为没有小数位的字符串的最佳方法

    将双精度数转换为没有小数位的字符串的最佳方法是什么 关于什么String valueOf int documentNumber 双精度数小数点后始终为 0 我不需要舍入或截断 如果您确定 double 确实是一个整数 请使用这个 Numbe
  • Delphi - 反向查找“谁包括这个单元”

    我正在调试分布在许多单元上的大型应用程序 我在低级单元中遇到了编译错误 并且完全不知道该单元在应用程序的哪个部分被引用 有没有办法使用 RAD studio 2010 的 IDE 创建某种包含图 由于大多数使用的单元不是项目的一部分 并且分
  • React 表单,提交对象,然后将其推送到数组

    我是 React 新手 不确定如何执行此操作 我有一组已映射并在视图中渲染的对象 我想要做的是设置一个表单 将每个字段的值提交到新对象的相应属性 但我不确定如何执行此操作 这是我的初始数据 它在视图中呈现 contactArray name
  • C# Outlook 2007 COM 互操作应用程序不退出!

    知道为什么以下代码不退出通过 COM 互操作创建的 Outlook 2007 进程吗 Microsoft Office Interop Outlook Application app new Microsoft Office Interop
  • 为什么这个 readline 异步迭代器无法正常工作?

    这是一个更大流程的一部分 我在节点 v14 4 0 中将其提炼为最小的 可重现的示例 在此代码中 它从内部不输出任何内容for loop 我在控制台中只看到这个输出 before for loop finished finally done
  • 如何使用 pgx 记录查询?

    如果我使用 pgx 池 我找不到如何记录 sql 查询的文档 例如我创建了这样的池 func DB pgxpool Pool connStr os Getenv DATABASE URL conn err pgxpool Connect c
  • 迁移到Git时如何处理部分svn:externals?

    我想将 SVN 存储库导入 GitHub Enterprise 存储库 与此相关的问题有很多 其中大多数都可以通过 Git 子模块或 Git 子树来解决 就我而言 我有两个存储库 主项目存储库 模块存储库 超过 2 GB 的大型 SVN 存
  • 如果找不到 emacs 初始化文件怎么办?

    我正在尝试按照以下说明将 haskell 模式添加到 emacs http doc gnu darwin org haskell mode installation guide html http doc gnu darwin org ha
  • ASP.NET Core 2,jQuery POST 数据为空

    I use jQuery并发送数据POST方法 但在服务器方法中 值没有出现 可能是什么错误 client ajax type POST contentType application json charset utf 8 url AddT
  • 接受套接字函数超时

    我试图在接受套接字函数上设置超时 但没有成功 我希望接受功能块直到超时延迟结束 是否可以不将接受函数设置为非阻塞 我尝试了很多可能性都没有成功 感谢您的回答 下面是我的代码 struct timeval tv fd set readfds