gpt4 book ai didi

c - UNIX 风格的套接字编程技巧

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

套接字编程在不同的 UNIX 风格(Linux、Solaris、FreeBSD、Mac OS 等)中可能存在细微差别。例如,一个程序可能运行良好在 Linux 下可以,但在 Solaris 下不行,因为 Solaris 不提供套接字选项。如果你幸运的话,你可以在操作系统手册中引用它,但如果没有的话,这个陷阱可能会花费你一天的时间。这些技巧可能不是一两本书就能获得的,它们是工程师的经验。我认为这些技巧不仅可以帮助新手,也可以帮助有经验的人。

我希望我们可以分享这些技巧。作为示例,我将展示 Solaris 套接字编程中的以下技巧:

  1. Add the following link options: "-lresolv -lnsl -lsocket";
  2. Solaris doesn't provide socket options: SO_SNDTIMEO and SO_RCVTIMEO;(https://stackoverflow.com/questions/15264801/why-does-solaris-os-define-so-sndtimeo-and-so-rcvtimeo-socket-options-in-header)
  3. In SCTP programming. must call bind() before calling sctp_bindx();(sctp_bindx (Solaris sctp library) always return "Invalid argument")
  4. When calling shutdown() on a listen socket, it will cause ENOTCONN error.(Why shutdown a socket can't let the select() return?)

有人可以提供有关不同 UNIX 风格的套接字编程的其他技巧吗?

最佳答案

参见 Bishop 等人,应用于 TCP/IP、UDP 和套接字的网络协议(protocol)的严格规范和一致性测试技术,剑桥大学计算机实验室和 NICTA,堪培拉,2005 年,可获取在网络上的各个地方。

关于c - UNIX 风格的套接字编程技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22123858/

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