标题:SO_REUSEADDR 出处:Felix021 时间:Mon, 19 Jul 2010 21:49:21 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?1895 内容: 前一阵和momo讨论到他的基于UDP的某个系统的设计时遇到这样一个问题:在一个局域网中有多台机器,有个消息是通过UDP广播发出的,且每台机器有多个进程需要监听同一个UDP端口,应该怎么办? 由于所知有限,当时我给的解决方案是,使用类似observer模式来建立一个稍复杂的服务(其实就是个转发,但是UDP进程数量未知)。后来momo发现,其实只要通过setsockopt设置SO_REUSEADDR属性之后,多个程序就可以绑定同一个端口了。 虽然问题是解决了,但是SO_REUSEADDR并没有上面提到的那么简单,因为momo遇到的问题正好是UDP广播/多播。否则上述模型就不适用了。这里有一篇文章,对其有更详细的注解,虽然是摘自《UNIX网络编程》的,但是给出了例子,很值得学习。 SO_REUSEADDR例解:http://www.cppblog.com/ace/archive/2006/04/29/6446.aspx unix网络编程 第一卷:http://wenku.baidu.com/view/99a6cc38376baf1ffc4fad6f.html Generated by Bo-blog 2.1.0