Solaris操作系统网络编程经验分享

原创 2013年11月16日 19:02:30

自从2010年我开始在Solaris操作系统进行应用程序开发算起,到现在已经超过3年的时间了。在这里我想把在Solaris操作系统上做网络编程开发的一些特有的经验分享出来,希望给别人有所帮助。


经验1:链接动态库选项:-lresolv -lnsl -lsocket。
也许在其它的UNIX系统上,一个"-lsocket"链接选项就能解决所有问题。但是在Solaris系统上,要链接这三个库。


经验2:不支持SO_SNDTIMEO和SO_RCVTIMEO socket选项。
在我用过的Solaris 9和Solaris 10上,这两个socket选项都不支持(我没用过Open Solaris,所以不确定Open Solaris是否支持)。所以尽管这两个宏定义在sys/socket.h,但是却是不起作用的。如果在程序中用到这两个选项,一定要注意这一点。我在使用MySQL,hiredis这些开源代码时都遇到过这个问题。


经验3:使用sctp_bindx之前,一定要先调用bind。
这个可能也是Solaris系统特有的了。我曾经遇到一个使用SCTP的应用程序,在其它系统上跑的好好的,到Solaris上就不行。后来查了一下man手册,才发现需要在调用sctp_bindx之前,要先调用bind。


经验4:shutdown()函数作用于一个listen socket时,会产生ENOTCONN错误
我曾经写过下面的程序:
第一个线程:

{
    ......
    FD_ZERO(&fd_sets);
    FD_SET(sock_fd, &fd_sets);

    ret_val = select(sock_fd + 1, &fd_sets, NULL, NULL, NULL);

    if (ret_val > 0)
    {
         accept(sock_fd, NULL, NULL);
         ......
    }
    else
    {
        ......
    }
}
第二个线程:

{
    ......
    shutdown(sock_fd, SHUT_RD);
    ......
} 
其中第一个线程阻塞在select函数,sock_fd是一个listen socket。我本意是在第二个线程中调用shutdown函数,使第一个线程的select返回,结果却发现没有生效,后来才发现shutdown返回了一个ENOTCONN错误。感兴趣的朋友也可以参考这里


以上就是我在Solaris上进行网络程序开发的一点心得,希望分享出来给需要的朋友一点帮助。如果大家有更好的经验,也欢迎分享出来。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

网络编程学习经验

  • 2012-11-04 21:49
  • 831KB
  • 下载

谈一谈网络编程学习经验

  • 2016-03-14 15:03
  • 1.02MB
  • 下载

操作系统基本概念之网络编程

套接字接口: 套接字接口是一组函数,它们与Unix I/O函数结合起来,用以创建网络。从Unix程序的角度看,套接字就是一个有相应描述符的打开文件。 函数: socket( ):客户端和服务器端使...

Unix网络编程 提高 TCP I/O 性能的3点经验

用John Nagle算法最小化报文传输延时通过 TCP socket 进行通信时,数据都拆分成了数据块,放到一个TCP报文中为了达到最好的性能,总希望尽可能多的可用数据来填充每个报文已达到为最大报文...

谈一谈网络编程学习经验(06-08更新)

谈一谈网络编程学习经验(06-08更新) 分类: muduo 2011-06-06 08:4145246人阅读 评论(90)收藏举报 谈一谈网络编程学习经验 陈硕 giant...

谈一谈网络编程学习经验(06-08更新)

本文转载:http://blog.csdn.net/Solstice/article/details/6527585 谈一谈网络编程学习经验 陈硕 giantchen@gmail...

Windows网络编程经验小结[sockopt]

转自:http://tech.china.com/zh_cn/netschool/programme/167721/20050831/12617434.html 1. 如果在已经处于 EST...

网络编程的实践过程中总结出来的一些经验

本文是我在进行MS-Windows、HP-Unix网络编程的实践过程中总结出来的一些经验,仅供大家参考。本文所谈到的Socket函数如果没有特别说明,都是指的Windows Socket API。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)