- 博客(19)
- 收藏
- 关注
转载 linux无名管道
管道(无名管道):管道和套接字一样不是属于进程的资源,而是属于操作系统的,因此也就不是fork的对象,fork只是复制了文件描述符。 管道的创建:int pipe(int fd[2]); //成功返回0,失败返回-1;参数:指向意图存放文件描述符的int变量的指针(作参数时退化为指针,无法传递大小)传参时,只需要传递一个元素类型为int大小为2的数组名即可
2016-12-30 08:25:36 844
转载 子进程复制了父进程的什么
转自:http://www.cnblogs.com/zhangchaoyang/articles/2317420.html如果你对代码段、数据段、栈、堆存放哪些数据还不是很清楚,请先看我写和Linux 内存管理。有时会出现父子进程变量的地址一样,但值不一样。看下面代码:#include#include#include#includemain(){ ch
2016-12-29 08:15:46 290
原创 进程与多进程服务器
进程占用内存空间的正在运行的程序(躺在硬盘里的是程序,被加载器加载到内存中运行后,正在运行的是进程)补充:拥有2个运算设备的CPU称作双核CPU,拥有4个运算器的CPU称作4核。核的个数与可同时运行的进程数相同。相反,若进程数超过核数,进程将分时使用CPU资源。只是因为CPU运行速度极快,我们会感觉所有进程同时运行而已(宏观上并行,微观上串行)。 进程ID 所有进程在创建时,操
2016-12-29 01:24:53 316
转载 TCP粘包原因与解决
流协议与粘包粘包的表现Host A 发送数据给 Host B; 而Host B 接收数据的方式不确定粘包产生的原因说明TCP字节流,无边界对等方,一次读操作,不能保证完全把消息读完UDP数据报,有边界对方接受数据包的个数是不确定的
2016-12-27 23:25:58 509
原创 TCP与应用层协议
TCP层与UDP层建立在IP之上,以IP层为基础进行数据传输,也就是说TCP与UDP还是通过一个个的IP包来进行传输的,虽然IP层只关心一个数据包(基本单位)的传输过程,但IP并不能保证数据包能安全的被送达,一旦丢失IP也无能为力,TCP在IP的基础上加上了对传输过程进行流控制,增加了一系列保证传输可靠的机制。1、给每个IP包分配序号sep,同时,保证接收端在接收到序号为seq的IP包时回复A
2016-12-27 22:40:07 2187
转载 Linux ps命令详解与示例说明
转自:http://blog.csdn.net/lsbhjshyn/article/details/18549869ps:要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是
2016-12-26 21:58:52 215
原创 有代表性的并发服务器端模型
如果服务器不能并发,那么排在后面的客户端将会等待,直到前面的客户端的服务请求被一一处理完毕,而且网络程序中数据通信时间比CPU运算时间占比更大,因此,向多个客户端提供服务是一种有效利用CPU的方式有代表性的并发服务器端模型::1、多进程服务器:通过创建多个进程来同时提供服务2、多路复用服务器:通过捆绑并统一管理I/O对象提供服务3、多线程服务器:通过生成与客服端等量的线程提供服
2016-12-26 21:33:50 183
转载 TCP_NODELAY详解
转自:http://bbs.chinaunix.net/thread-3767363-1-1.html在网络拥塞控制领域,我们知道有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John Nagle在1984年首次用这个算法来尝试解决福特汽车公司的网络拥塞问题(RFC 896),该问题的具体描述是:如果我们
2016-12-26 21:11:30 419
原创 套接字的多种可选项
套接字的可选项levelOptnamegetset说明标志数据类型SOL_SOCKETSO_BROADCASTyy允许发送广播数据报yint
2016-12-26 07:56:30 421
原创 域名与IP地址
域名系统DNS(Domain Name System )IP地址是难以记忆与表述的,所以使用域名取代IP地址域名是赋予服务器的虚拟地址,DNS服务器负责将虚拟地址(域名)转化为实际地址(IP地址)所有计算机中都记录着默认DNS服务器地址,通过默认的DNS服务器获得域名的相应IP地址信息,默认DNS服务器不可能知道所有的域名的IP地址,当默认DNS收到无法解析的请求时,会向上级DNS服务
2016-12-26 00:13:51 580
转载 accept函数
转自:http://ticktick.blog.51cto.com/823160/779866今天与同学争执一个话题:由于socket的accept函数在有客户端连接的时候产生了新的socket用于服务该客户端,那么,这个新的socket到底有没有占用一个新的端口? 讨论完后,才发现,自己虽然熟悉socket的编程套路,但是却并不是那么清楚socket的原
2016-12-25 15:33:49 701
转载 accept()返回的套接字绑定哪个端口 新旧套接字的联系
摘要:对于服务器编程中最重要的一步等待并接受客户的连接,那么这一步在编程中如何完成,accept函数就是完成这一步的。它从内核中取出已经建立的客户连接,然后把这个已经建立的连接返回给用户程序,此时用户程序就可以与自己的客户进行点到点的通信了。accept函数等待并接受客户请求:#includeint accept(int sockfd, struct sockaddr* add
2016-12-25 15:05:18 1348
原创 基于TCP的半关闭
基于TCP的半关闭TCP练级的半关闭简而言之就是”关闭连接的一半”(只可以传递或接收数据) 套接字和流两台主机通过套接字建立连接后进入可交换数据的状态(流形参的状态),即将建立套接字后可交换数据的状态看做一种流套接字的流中,数据只能向一个方向移动,因此需要两个流进行双向通信(建立连接后的主机将拥有单独的输入流与输出流这两个相互独立的流,这两个流与连接上的另一个主机的输出流与输入
2016-12-22 07:17:07 1847
原创 TCP/IP网络编程之UDP
UDP套接字:1、 在结构上比TCP简洁UDP不会发送ack应答消息、不会分配seq UDP编程上比TCP简单3、虽然UDP缺少流控制机制,可靠性比不上TCP,但也不像想象中那么频繁的发生数据丢失与损毁4、在重视性能而非可靠性的情况下,UDP是一种很好的选择5、TCP的速度无法超过UDP,但是在收发某些类型的数据时有可能接近UDP,如每次交换的数据量越大,TCP的传输速率就越接近
2016-12-21 08:31:41 523
原创 TCP原理简单描述
TCP套接字中的I/O缓冲套接字中存在缓冲区,在我们调用write与read函数时,并不是立即传输/接收数据,而是调用瞬间将数据移至输出缓冲区,或从输出缓冲区读取数据(有多少读多少)调用write后被移动到缓冲区的数据在适当的时候传向(不管是一次传送还是多次传送)对方的输入缓冲区,这时对方的read函数开始从其输入缓冲区读取数据注意:函数write与windows中的send函数在
2016-12-16 23:41:14 729
原创 简单的计算器服务器端/客户端程序
//应用层协议//客户端连接到服务器端后以1字节整数形式穿肚运算数个数//客户端向服务器端传递的每个待算整数占4字节//传递待算数后传递运算符,运算符占1字节//选择字符+、-、*之一传递//服务器端以4字节整数形式向客户端传输运算结果//客户端得到结果后终止与服务器端的连接客户端代码#include #include #include #include
2016-12-16 21:03:07 1962
原创 TCP/IP网络编程之TCP
TCP字节流与UDP数据报的区别参考链接 http://www.linuxidc.com/Linux/2014-11/109545.htmTCP/IP协议栈分为四层链路层物理链接领域标准化结果。若两台计算机通过网络进行数据交换,链路层就负责整个物理连接。网络层(IP层)负责在复杂的网络中传输数据时的路径的选择,但是IP本身是面向消息的、不可靠的协议。每次传输数据
2016-12-10 16:35:50 493
原创 TCP/IP网路编程之地址族与数据序列
IP地址分为IPv4与IPv6 前者是4字节地址族后者是16字节地址族,两者的差异主要是表示IP地址所使用的字节数IPv4的4字节地址分为网络地址与主机地址,并且分为A、B、C、D、E四种类型说明:A类地址的首字节范围是:0-127B类地址的首字节范围是:128-191C类地址的首字节范围是:192-223或者也可以这样分A类地址的首位是以0开头B类
2016-12-09 20:53:30 1634
原创 TCP/IP网络编程之套接字
服务器端套接字创建过程:(1)调用socket函数创建套接字,得到套接字文件描述符(Linux下称呼)/套接字句柄(Windows下称呼)(2)调用bind为套接字分配IP与地址与端口号(3)调用listen函数将套接字转化为可接收连接的状态(4)调用accept函数受理连接请求客户端套接字创建过程:(1)调用socket函数创建套接字(2)调用conne函数先服务器端
2016-12-05 15:08:53 562
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人