![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux 系统编程/网络编程
kankan231
这个作者很懒,什么都没留下…
展开
-
socket阻塞与非阻塞,同步与异步、I/O模型
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理转载 2014-03-27 23:40:30 · 690 阅读 · 0 评论 -
TCP协议的状态分析
TCP/IP 协议簇中TCP提供可靠的服务连接,采用三次握手建立一个连接,如下图所示: 在客户端A和服务端B之间建立一条tcp连接,主要经过一下三步: 一 客户端 A发起建立连接的请求,向服务端B发一个SYN(seq=x)包。 二 服务端B收到SYN(seq=x)包后,必须对转载 2014-06-14 16:30:56 · 722 阅读 · 0 评论 -
Linux网络编程之原始套接字-ping协议实现
原文:http://blog.chinaunix.net/uid-25885064-id-3156983.html转载 2014-05-30 15:47:25 · 1265 阅读 · 0 评论 -
一个比nginx速度更快的HTTP服务器
原文:http://www.cnblogs.com/clowwindy/archive/2011/09/23/a_http_server_faster_than_nginx.html首先承认这个标题标题党了:)。在上次的FreeBSD和linux的nginx静态文件性能对比测试 后,我萌发了自己动手做一个简单的Web Server来搞清楚nginx高性能背后的原理的想法。最后成功实转载 2014-05-28 15:39:23 · 1477 阅读 · 0 评论 -
配置开发支持高并发TCP连接的Linux应用程序全攻略
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制: [speng@as4 ~]$转载 2014-05-26 14:40:00 · 597 阅读 · 0 评论 -
Linux动态库与静态库的制作
原文:http://yanghe9012.blog.163.com/blog/static/21398220320137982452330/转载 2014-04-14 11:04:12 · 592 阅读 · 0 评论 -
Linux c++ 线程池及其实现
因为毕业设计里面要用到线程池,所以研究了一下,然后自己用c++实现了一个jib原创 2014-04-25 22:59:55 · 4865 阅读 · 0 评论 -
Linux线程的读写锁
读写锁 (rwlock)功能特点简介读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可能的读者数为实际的逻辑CPU数。写者是排他性的,一个读写锁同时只能有一个写者或多个读者(与CPU数相关),但不能同时既有读者转载 2014-04-11 10:13:10 · 817 阅读 · 0 评论 -
TCP、UDP、IP 协议分析
原文地址:http://blog.chinaunix.net/uid-26833883-id-3627644.html转载 2014-04-09 15:29:38 · 890 阅读 · 1 评论 -
gcc,g++编译链接有关的路径
在Linux下编译链接c/c++程序时可能会遇到找不到头文件,找不到库文件,或者在原创 2014-04-21 13:13:05 · 10717 阅读 · 0 评论 -
转载的几篇网络编程的好文章
http://blog.chinaunix.net/uid-23069658-id-3271110.html原创 2014-04-18 22:21:59 · 677 阅读 · 0 评论 -
tcpdump工具使用
TCPdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。 tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执转载 2014-04-16 10:59:03 · 760 阅读 · 0 评论 -
ip、tcp、udp 报头结构体分析
1、TCP数据段格式 TCP是一种可靠的、面向连接的字节流服务。源主机在传送数据前需要先和目标主机建立连接。然后,在此连接上,被编号的数据段按序收发。同时,要求对每个数据段进行确认,保证了可靠性。如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机将再次发送该数据段。转载 2014-03-20 12:40:24 · 4026 阅读 · 0 评论 -
Linux--进程组、会话、守护进程
1:进程组(一个或多个进程的集合) #include pid_t getpgrp(void); getpgrp()用来取得目前进程所属的组识别码。 此函数相当于调用getpgid(0) #include > pid_t getpgid(pid_t pid); getpgid()用来取得参数pid指定进程所属的组识别转载 2014-04-16 13:16:54 · 1627 阅读 · 0 评论 -
Linux下遍历所有文件及目录
源码如下: #include #include #include #include #include void printdir(char *dir, int depth){ DIR *dp; struct dirent *entry; struct stat statbuf; if((dp = opendir(dir)) == NULL) {转载 2014-03-27 16:56:03 · 3058 阅读 · 0 评论 -
P2P 之 UDP穿透NAT的原理与实现
论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT转载 2015-12-04 14:37:19 · 2040 阅读 · 0 评论