【问题标题】:Socket programming tips in UNIX flavors [closed]UNIX 风格的套接字编程技巧 [关闭]
【发布时间】:2014-04-03 03:34:44
【问题描述】:

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

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

  1. 添加以下链接选项:“-lresolv -lnsl -lsocket”;
  2. Solaris 不提供套接字选项:SO_SNDTIMEO 和 SO_RCVTIMEO;(https://stackoverflow.com/questions/15264801/why-does-solaris-os-define-so-sndtimeo-and-so-rcvtimeo-socket-options-in-header)
  3. 在 SCTP 编程中。必须在调用 sctp_bindx() 之前调用 bind();(sctp_bindx (Solaris sctp library) always return "Invalid argument")
  4. 在监听套接字上调用shutdown()会导致ENOTCONN错误。(Why shutdown a socket can't let the select() return?)

谁能提供有关不同 UNIX 风格的套接字编程的其他技巧?

【问题讨论】:

    标签: c sockets unix network-programming


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-08
      • 2014-06-02
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      相关资源
      最近更新 更多