套接字 SO_REUSEADDR

news/2024/5/17 17:27:43 标签: socket, stream, tcp, 百度

引用自百度百科http://baike.baidu.com/view/7994791.htm


设置套接字选项为SO_REUSEADDR,socket可重用,经常在socket通信时进行设置

  //设置套接字选项为SO_REUSEADDR,即socket可重用
  opt=SO_REUSEADDR;
  setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));
  :编写 TCP/SOCK_STREAM 服务程序时,SO_REUSEADDR到底什么意思?
  A: 这个套接字选项通知内核,如果端口忙,但TCP状态位于 TIME_WAIT ,可以重用端口。如果端口忙,而TCP状态位于其他状态,重用端口时依旧得到一个错误信息,指明"地址已经使用中"。如果你的服务程序停止后想立即重启,而新套接字依旧使用同一端口,此时 SO_REUSEADDR 选项非常有用。必须意识到,此时任何非期望数据到达,都可能导致服务程序反应混乱,不过这只是一种可能,事实上很不可能。
  一个套接字由相关五元组构成,协议、本地地址、本地端口、远程地址、远程端口。SO_REUSEADDR 仅仅表示可以重用本地本地地址、本地端口,整个相关五元组还是唯一确定的。所以,重启后的服务程序有可能收到非期望数据。必须慎重使用 SO_REUSEADDR 选项。

http://www.niftyadmin.cn/n/518963.html

相关文章

webrtc-m79-音频相关 internal::Call 中的 config_.audio_state 的来源

1 代码 std::unique_ptr<Call> PeerConnectionFactory::CreateCall_w(RtcEventLog* event_log) {RTC_DCHECK_RUN_ON(worker_thread_);webrtc::Call::Config call_config(event_log);if (!channel_manager_->media_engine() || !call_factory_) {return nullptr;}call…

linux 指定动态库路径

转自http://www.rosoo.net/a/201112/15491.html 众所周知&#xff0c;Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后&#xff0c;一般都复制到这两个目录中。当程序执行时需要某动态库&#xff0c;并且该动 态库还未加载到内存中&#xff0c;则系统会自动到这两个…

关于connection reset by peer 的思考

在调试一个客户端的程序时&#xff0c;发现有connection reset by peer的错误。google&#xff0c;百度了半天特总结如下&#xff1a; 出现这个问题的原因是socket连接的一端在关闭socket句柄的时候&#xff0c;对已经关闭的socket调用两次write&#xff0c;第一次如果发送缓冲…

webrtc-m79-音频相关 DecoderDatabase 中 decoders_ 的设置

1 代码 void AudioReceiveStream::ConfigureStream(AudioReceiveStream* stream,const Config& new_config,bool first_time) {RTC_LOG(LS_INFO) << "AudioReceiveStream::ConfigureStream: "<< new_config.ToString();RTC_DCHECK(stream);const au…

SDP文件解析

SDP文件解析 SDP是一个IETF标准格式&#xff0c;用来描述视频和/或者音频的RTP流。转自网络 会话描述协议&#xff08;SDP&#xff09;为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述。会话目录用于协助多媒体会议的通告&#xff0c;并为会话参…

webrtc-m79-音频处理-音频前期的准备工作

1 相关类图 2 代码 void Conductor::OnSuccess(webrtc::SessionDescriptionInterface* desc) {peer_connection_->SetLocalDescription(DummySetSessionDescriptionObserver::Create(), desc);std::string sdp;desc->ToString(&sdp);// For loopback test. To save …

top 命令小结

top 进入&#xff1b; 按H可以看见线程信息 ------------------------------------------- 如果想看到线程具体调用&#xff0c;用gdb attach进程 info threads ; thread num ; bt; where 以下转自http://blog.csdn.net/sanshiqiduer/article/details/1933625 top命令是…

webrtc-m79-音频处理-音频的接收流程

1 函数调用流程图 2 代码 与视频相比&#xff0c;接收流程的前面的一部分是重合的。 void UDPPort::OnReadPacket(rtc::AsyncPacketSocket* socket,const char* data,size_t size,const rtc::SocketAddress& remote_addr,const int64_t& packet_time_us) {RTC_DCHECK…