常用socket选项
1、socket选项通常:服务端应在listen 前设置,accpet返回的socket继承自监听套接字。
客户端应在connect之前设置
2、socket 如果有大量短连接应设置SO_LINGER选项 代码如下。
注意:服务端和客户端都要设置,这样调用close时会直接关闭socket,避免大量TIME_OUT状态的socket出现
struct linger so_linger;
so_linger.l_onoff = TRUE;
so_linger.l_linger = 0;
setsockopt(m_skServer, SOL_SOCKET, SO_LINGER, (const char*)&so_linger, sizeof(so_linger));
不能使用shutdow函数,使用shutdown还是会出现time_wait状态
3、select 函数返回的条件:
可读:接收缓冲区中的数据值大约等于SO_RCVLOWAT的值一般默认为1
可写:发送缓冲区的可用空间大约等于SO_SNDLOWAT的值(2048)
常用socket选项的更多相关文章
- 浅谈Linux环境下Socket选项的设置
0.前言 TCP/IP协议栈是Linux内核的重要组成部分和网络编程的基石,虽然Linux和BSD有很大的联系,但是对于某些Socket选项和内核操作仍然存在差异,因此文中适用场景均为CentOS环境 ...
- 常用socket函数详解
常用socket函数详解 关于socket函数,每个的意义和基本功能都知道,但每次使用都会去百度,参数到底是什么,返回值代表什么意义,就是说用的少,也记得不够精确.每次都查半天,经常烦恼于此.索性都弄 ...
- Socket编程基础——Socket选项
有些情况下,我们需要对Socket行为和属性进一步控制,例如修改缓冲区大小,查看Socket状态,这就需要设置/获取Socket选项. 1.获取Socket选项int getsockopt(SOCKE ...
- 9个 SSH常用命令选项
9个 SSH常用命令选项 SSH 是什么 SSH(全称 Secure Shell)是一种加密的网络协议.使用该协议的数据将被加密,如果在传输中间数据泄漏,也可以确保没有人能读取出有用信息.要使用 SS ...
- erlang R17新socket选项{active,N}
erlang R17带来了新的socket选项{active,N} .与{active,once}连同应用层提供的流量控制.为什么会这样选择,{active,once}不能够有效地抑制了很多socke ...
- Linux 高性能服务器编程——socket选项
socket选项函数 功能:用来读取和设置socket文件描述符属性的方法 函数: #include <sys/scoket.h> int getsockopt ( int sockfd, ...
- saltstack(二) master、minion常用配置选项
master常用配置选项: interface: 指定bind的地址(默认0.) publish_port:指定发布端口(默认4505) ret_port: 指定结果返回端口,与minion配置文件的 ...
- Socket编程中的强制关闭与优雅关闭及相关socket选项
以下描述主要是针对windows平台下的TCP socket而言. 首先需要区分一下关闭socket和关闭TCP连接的区别,关闭TCP连接是指TCP协议层的东西,就是两个TCP端之间交换了一些协议包( ...
- 提高服务端性能的几个socket选项
提高服务端性能的几个socket选项 在之前的一篇文章中,作者在配置了SO_REUSEPORT选项之后,使得应用的性能提高了数十倍.现在介绍socket选项中如下几个可以提升服务端性能的选项: SO_ ...
随机推荐
- python 网络编程(Socket)
# from wsgiref.simple_server import make_server## def RunServer(environ,start_response):# start_resp ...
- 用with打开文件
rep_word = 'The piece is gone, left the puzzle undone' # \ 换行,跟shell一样 with open('nothing', 'r', enc ...
- python中list,tuple,dict,set等深浅拷贝的问题记录
对于字典.元祖.列表 而言,进行赋值.浅拷贝和深拷贝时,其内存地址的变化是不同的. 1.赋值 赋值,只是创建一个变量,该变量指向原来内存地址,如: 1 2 3 n1 = {"k1" ...
- Java调用第三方接口工具类(json、form)
1.JSON值访问 /** * 调用对方接口方法 * @param path 对方或第三方提供的路径 * @param data 向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析 ...
- VsCode编写博客发布
发布图片测试: Java代码测试: //计算机等级考试p6例1.2 //编辑者:鸿灬嗳 package test00; class Circle{ static double PI=3.1415926 ...
- docker 下安装gitlab
1.找到docker镜像 docker search gitlab 2.下载gitlab镜像 docker pull gitlab/gitlab-ce/ 3.通常会将 GitLab 的配置 (etc ...
- java基本类型和数字类及其相关计算
--- java 八大基本类型 byte short int long double float boolean char --对应的包装类 Byte Short Integer Long Doub ...
- mongodb数据迁移到hbase
mongodb数据迁移到hbase 导入包 # encoding: utf-8 ''' @author: zcc @license: (C) Copyright 2013-2017, Node Sup ...
- ORACLE数据库管理员的职责
ORACLE数据库管理员的职责 一.概述 ORACLE数据库管理员应按如下方式对ORACLE数据库系统做定期监控: (1). 每天对ORACLE数据库的运行状态,日志文件,备份情况,数据库的空间使用情 ...
- day-02
昨天吧 需要写一个财务管理制度 很是伤脑 我发现一旦用脑过度 就会极其想吃零食 所以 昨天吃了些零食 说这个呢 无非是想说 我昨天学习python的时间很少 而且昨晚安装python软件也出现问题了 ...