![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux 高性能服务器编程
文章平均质量分 58
ctthuangcheng
这个作者很懒,什么都没留下…
展开
-
proc/sys/net/ipv4/下各项的意义
/proc/sys/net/ipv4/icmp_timeexceed_rate这个在traceroute时导致著名的“Solaris middle star”。这个文件控制发送ICMP Time Exceeded消息的比率。/proc/sys/net/ipv4/igmp_max_memberships主机上最多有多少个igmp (多播)套接字进行监听。/proc/sys/net/ipv4/inet转载 2014-03-17 16:47:29 · 4949 阅读 · 0 评论 -
Linux 高性能服务器编程——I/O复用的高级应用
高级应用一:原创 2014-05-23 09:51:21 · 1823 阅读 · 0 评论 -
Linux 高性能服务器编程——多进程编程
问题聚焦: 进程是Linux操作系统环境的基础。 本篇讨论以下几个内容,同时也是面试经常被问到的一些问题: 1 复制进程映像的fork系统调用和替换进程映像的exec系列系统调用 2 僵尸进程 3 进程间通信的方式之一:管道 4 3种System V进程通信方式:信号量,消息队列和共享内存fork系统调用定义:转载 2014-05-23 10:37:46 · 1842 阅读 · 0 评论 -
Connection Reset By Peer 解析
linux网络编程 Connection reset by peer错误服务器向客户端发送了数据,客户端没有接收就关闭了,服务器read就会发生Connection reset by peer错误。我试验了一下,确是如此。同学们遇到过这个问题吗?------解决方案--------------------------------------------------------客户端调用close(转载 2014-06-06 13:31:15 · 3809 阅读 · 0 评论 -
Linux 高性能服务器编程——多线程编程
问题聚焦: 在简单地介绍线程的基本知识之后,主要讨论三个方面的内容: 1 创建线程和结束线程; 2 读取和设置线程属性; 3 线程同步方式:POSIX信号量,互斥锁和条件变量。Linux线程概述线程模型程序中完成一个独立任务的完整执行序列,即一个可调度的实体。分为内核线程和用户线程当进程的一个内核线程获得CPU的使用权时,它就加载并运行一个用户线程,可见,内核线程相当于用户转载 2014-05-23 15:43:02 · 2184 阅读 · 0 评论 -
linux C 获取与修改IP地址
主要有两种方法:一种是用system执行shell命令,如:system("ifconfig eth0 192.168.1.188"); 另一种用ioctl系统调用:原创 2014-07-01 16:00:12 · 3226 阅读 · 0 评论 -
Linux下端口复用(SO_REUSEADDR与SO_REUSEPORT)
freebsd与linux下bind系统调用小结只考虑AF_INET的情况(同一端口指ip地址与端口号都相同)1.freebsd支持SO_REUSEPORT和SO_REUSEADDR选项,而linux只支持SO_REUSEADDR选项。2.freebsd下,使用SO_REUSEPORT选项,两个tcp的socket可以绑定同一个端口;同样,使用SO_REUSEPORT选项,两个udp的socket转载 2014-09-03 00:18:40 · 11198 阅读 · 2 评论 -
linux网络编程之二-----多播(组播)编程
多播编程实例服务器端下面是一个多播服务器的例子。多播服务器的程序设计很简单,建立一个数据包套接字,选定多播的IP地址和端口,直接向此多播地址发送数据就可以了。多播服务器的程序设计,不需要服务器加入多播组,可以直接向某个多播组发送数据。下面的例子持续向多播IP地址"224.0.0.100"的8888端口发送数据"BROADCAST TEST DATA",每发送一次间隔5s。/**broadcast原创 2015-06-20 01:25:54 · 1982 阅读 · 0 评论 -
linux网络编程之一-----多播(组播)编程
什么是多播 组播(Multicast)是网络一种点对多(one to many)的通信方式,通过报文复制完成网络中一台server对应多台接收者的高效数据传 送。对其形象的比喻就是类似于广播电台和电视台节目的发送。电台或电视台向特定频道发送他们的节目,而接收者可以根据自己的喜好选择频道来收听或收看节 目。 传统网络的通信方式单 播(Unicast) 在许多场合下并不合适,原创 2015-06-20 00:33:27 · 5661 阅读 · 0 评论 -
IP_ADD_MEMBERSHIP 失败
/*将本机加入多播组*/ err = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,&mreq, sizeof(mreq)); if (err { perror("setsockopt():IP_ADD_MEMBERSHIP"); exit(1); }因为不同的socket版本,定义IP_ADD_ME原创 2015-06-24 11:17:25 · 5420 阅读 · 1 评论 -
SO_REUSEADDR和SO_REUSEPORT异同
文章内容来源于stackoverflow上的回答,写的很详细http://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t 虽然不同的系统上socket的实现方式有一些差异,但都来源于对BSD socket的转载 2015-11-19 20:38:57 · 2014 阅读 · 0 评论 -
Linux 高性能服务器编程——I/O复用
问题聚焦: 前篇提到了I/O处理单元的四种I/O模型。 本篇详细介绍实现这些I/O模型所用到的相关技术。 核心思想:I/O复用使用情景:客户端程序要同时处理多个socket客户端程序要同时处理用户输入和网络连接TCP服务器要同时处理监听socket和连接socket,这是使用最多的场合服务器要同时可处理TCP请求和UDP请求服务器要同时监听多个端口主要技术:selectpolle转载 2014-05-22 11:23:21 · 1827 阅读 · 0 评论 -
Linux 高性能服务器编程——高性能服务器程序框架
问题聚焦: 核心章节。 服务器一般分为如下三个主要模块:I/O处理单元(四种I/O模型,两种高效事件处理模块),逻辑单元(两种高效并发模式,有效状态机)和存储单元(不讨论)。服务器模型C/S模型结构:特点:逻辑简单。工作流程:I/O复用技术:select,同时监听多个客户请求。优点:适合资源相对集中的场合。缺点:当访问量过大,可能所有客户都将得到很慢的相应。P2P模型结构:两种结构结构转载 2014-05-21 23:51:56 · 2167 阅读 · 0 评论 -
linux 最大文件描述符
Linux对应用程序能打开的的最大文件描述符原创 2014-04-15 10:29:15 · 3181 阅读 · 0 评论 -
linux 服务器网络有关的内核参数
几乎所有的内核模块,包括内核核心模块和驱动程序,都在/proc原创 2014-04-15 12:34:06 · 2178 阅读 · 0 评论 -
syslog(),closelog()与openlog()--日志操作函数
为了满足某些目的,进行日志记录是很有必要的。 在典型的 LINUX 安装中,/var/log/messages 包含所有的系统消息,/var/log/mail 包含来自邮件系统的其它日志消息,/var/log/debug 可能包含调试消息。根据你的LINUX的版本,你可以在 /etc/syslog.conf 或者 /etc/syslog-ng/syslog-ng.conf 文件里检查你的系统转载 2014-03-25 11:20:34 · 2651 阅读 · 0 评论 -
Linux 高性能服务器编程——TCP协议详解
问题聚焦: 本节从如下四个方面讨论TCP协议: TCP头部信息:指定通信的源端端口号、目的端端口号、管理TCP连接,控制两个方向的数据流 TCP状态转移过程:TCP连接的任意一端都是一个状态机 TCP数据流:两种主要类型:交互数据流,成块数据流 TCP数据流的控制:保证可靠传输和提高网络通信质量,两个方面:超时重传,拥塞控制1 TCP服务的特点传输层协议:TCP协议,转载 2014-05-04 17:32:27 · 2328 阅读 · 0 评论 -
Linux 高性能服务器编程——TCP/IP协议族
1 TCP/IP协议族体系结构数据链路层: 职责:实现网卡接口的网络驱动程序,一处理数据在物理媒介(如以太网、令牌环等)上的传输。 常用协议:ARP协议(地址解析协议),RARP协议(逆地址解析协议)——实现了IP地址和机器物理地址之间的相互转换。 寻址:使用物理地址(MAC地址)寻址一台机器。因此网络层必须先将目标机器的IP地址转化成其物理地址,才能使用数据链路层提供的服务。网转载 2014-05-04 13:12:12 · 1805 阅读 · 0 评论 -
Linux 高性能服务器编程——IP协议详解
1 IP服务特点TCP/IP协议族的动力,为上层协议提供无状态,无连接,不可靠的服务无状态:IP通信双方不同步传输数据的状态信息,因此IP数据包的发送、传输和接收都是无序的。 缺点:无序,不可靠 优点:简单、高效不可靠:不能保证IP数据报准确地到达接收端,它只是承诺尽最大努力。发送端(转发端)一旦检测到IP数据包发送失败(如存活时间过长,数据报不正确),就通知上层协议发送失败,转载 2014-05-04 15:01:57 · 1876 阅读 · 0 评论 -
Linux 高性能服务器编程——socket选项
socket选项函数功能:用来读取和设置socket文件描述符属性的方法函数:#include int getsockopt ( int sockfd, int level, int option_name, void* option_value, socklen_t* restrict option_len );int setsockopt ( int sockfd, int level,原创 2014-05-12 14:14:40 · 3225 阅读 · 0 评论 -
Linux 高性能服务器编程——Linux网络编程基础API
问题聚焦: 这节介绍的不仅是网络编程的几个API 更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系。 这节主要介绍三个方面的内容:套接字(socket地址)API,socket基础API,和网络信息API。套接字API套接字socket:(ip, port),即IP地址和端口对,唯一地表示了使用该TCP通信的一端。需要了解:主机字节序和网络字节序转载 2014-05-07 19:03:03 · 2293 阅读 · 0 评论 -
Linux 高性能服务器编程——Linux服务器程序规范
问题聚焦: 除了网络通信外,服务器程序通常还必须考虑许多其他细节问题,这些细节问题涉及面逛且零碎,而且基本上是模板式的,所以称之为服务器程序规范。 工欲善其事,必先利其器,这篇主要来探讨服务器程序的一些主要规范。概览:Linux服务器程序一般以后台程序的形式运行,后台进程又称为守护进程。Linux服务器程序一般以某个专门的非root身份运行。Linux服务器程序通常是可配置的,命令行或转载 2014-05-12 16:41:21 · 2269 阅读 · 0 评论 -
Linux 高性能服务器编程——高级I/O函数
重定向dup和dup2套接字socket:(ip, port),即IP地址和端口对,唯一地表示了使用该TCP通信的一端。原创 2014-05-12 15:36:15 · 5147 阅读 · 1 评论 -
UDP单播和组播使用SO_REUSEADDR 测试结果
UDP单播通信一、预置条件 A、B在同一台机器,网络中存在往A、B所在的机器的8888端口发送单播UDP数据 A:端口复用绑定在端口8888上 B:端口复用绑定在端口8888上操作步骤:(1)先启动A(2)再启动B(3)B退出预期结果:(1)A 正常接收数据(2)B 正常接收数据,A收不到数据(3)A 正常接收数据二、预置条件 A、B在同一台机器,网络中存在往A、B所在的机器的8888端口发送单播原创 2015-11-19 21:06:56 · 6809 阅读 · 1 评论