Linux网络编程
Try1024
曾经沧海难为水
展开
-
(二)socket编程(三)
目录socket编程(七)TCP 11种状态连接建立三次握手、连接终止四次握手TIME_WAIT与SO_REUSEADDRRST标志SIGPIPEsocket编程(八)五种I/O模型1. 阻塞I/O模型2. 非阻塞I/O模型3. I/O复用模型(最常用)4.信号驱动I/O模型5. 异步IO模型(效率最高)selectsocket编程(九)...原创 2019-04-20 16:52:23 · 516 阅读 · 0 评论 -
(三)进程通信(四)-System V信号量
目录30System V信号量(一)信号量信号量集结构信号量集函数信号量示例31System V信号量(二)用信号集解决哲学家就餐问题33System V共享内存与信号量综合基于生产者-消费者模型实现先进先出的共享内存段30System V信号量(一)信号量●二值信号量:其值或为0或为1的信号量。这与互斥锁类似。若资源被锁住则信号量为0,若资源可...原创 2019-05-08 00:10:56 · 402 阅读 · 0 评论 -
(三)进程通信(三)-共享内存
目录28共享内存介绍共享内存示意图管道、消息队列与共享内存传递数据对比mmap函数munmap函数msync函数29System V共享内存共享内存数据结构共享内存函数shmgeshmatshmdtshmctl共享内存示例28共享内存介绍共享内存示意图共享内存区是最快的IPC形式,这些进程间数据传递不再涉及到内核,换句话说是...原创 2019-05-08 00:05:42 · 261 阅读 · 0 评论 -
(三)线程通信(三)-POSIX信号量/互斥锁/条件变量
目录39POSIX信号量与互斥锁POSIX信号量相关函数POSIX互斥锁相关函数生产者消费者问题自旋锁与读写锁介绍40POSIX条件变量条件变量条件变量函数条件变量使用规范使用条件变量解决生产者消费者问题39POSIX信号量与互斥锁POSIX信号量相关函数system v 信号量只能用于进程间同步,而posix 信号量除了可以进程间同步,还可以线...原创 2019-05-15 15:15:43 · 548 阅读 · 0 评论 -
(三)线程通信(二)-POSIX线程
目录37POSIX线程(一)POSIX线程库相关函数用线程实现回射客户/服务器38POSIX线程(二)线程属性线程特定数据37POSIX线程(一)由于同一进程的多个线程共享同一地址空间,因此Text Segment、Data Segment都是共享的,如果定义一个函数,在各线程中都可以调用,如果定义一个全局变量,在各线程中都可以访问到,除此之外,各线程还共享以...原创 2019-05-15 15:14:28 · 707 阅读 · 0 评论 -
(三)线程通信(一)-线程介绍
目录36线程介绍什么是线程进程与线程线程优缺点线程模型N:1用户线程模型1:1核心线程模型pthread线程库--NPTL(Native POSIX Threading Library)N:M混合线程模型NGPT(Next Generation POSIX Threads)36线程介绍什么是线程现代操作系统调度的最小单元是线程,也叫轻量级进程,在一个...原创 2019-05-15 15:13:27 · 352 阅读 · 0 评论 -
(三)进程通信(二)-System V消息队列
目录25System V消息队列(一)消息队列IPC对象数据结构消息队列结构消息队列在内核中的表示消息队列函数msgsnd函数msgrcv函数26System V消息队列(二)msgsnd函数msgrcv函数27System V消息队列(三)消息队列实现回射客户/服务器25System V消息队列(一)消息队列1、消息队列提供了一...原创 2019-05-07 22:32:25 · 371 阅读 · 0 评论 -
(二)socket编程(二)
目录socket编程(四)流协议与粘包粘包产生的原因粘包处理方案--本质上是要在应用层维护消息与消息的边界readn writensocket编程(五)read、write与recv、sendreadline实现用readline实现回射客户/服务器getsockname、getpeernamegethostname、gethostbyname、geth...原创 2019-04-20 15:34:49 · 513 阅读 · 0 评论 -
(二)socket编程(一)
目录socket编程(一)什么是socketIPv4套接口地址结构网络字节序字节序转换函数地址转换函数套接字类型socket编程(二)TCP客户/服务器模型回射客户/服务器socket、bind、listen、accept、connectsocket编程(三)SO_REUSEADDR点对点聊天程序实现socket编程(一)什么是...原创 2019-04-19 21:07:10 · 427 阅读 · 0 评论 -
(三)进程通信(一)-介绍
目录进程间通信介绍(一)进程同步与进程互斥一些概念:顺序程序与并发程序特征进程互斥进程同步进程间通信目的进程间通信发展进程间通信分类进程间共享信息的三种方式IPC对象的持续性进程间通信介绍(二)死锁(1)概念(2)死锁产生的必要条件:(3)防止死锁的办法(4)死锁避免(5)银行家算法(6)哲学家就餐问题信号量和PV原...原创 2019-04-23 15:42:20 · 558 阅读 · 0 评论 -
(一)TCP/IP基础
目录TCPIP基础(一)ISO/OSI参考模型TCP/IP四层模型基本概念(对等通信、封装、分用、端口)TCPIP基础(二)最大传输单元(MTU)/路径MTU以太网帧格式ICMPARP-地址解析协议数据在网络中传输过程(ping的过程)RARP-反向地址解析协议TCPIP基础(三)IP数据报格式网际校验和路由TCPIP基础(四)...原创 2019-04-18 17:36:25 · 1159 阅读 · 0 评论 -
(二)socket编程(六)
目录socket编程(十六)UNIX域套接字(命名套接字)UNIX域协议特点UNIX域地址结构UNIX域字节流回射客户/服务UNIX域套接字编程注意点socket编程(十七)socketpair利用socketpair实现全双工通信sendmsg/recvmsgUNIX域套接字传递描述符字socket编程(十六)UNIX域套接字(命名套接字)...原创 2019-04-22 13:14:43 · 398 阅读 · 0 评论 -
(二)socket编程(五)
目录socket编程(十四)UDP特点UDP客户/服务基本模型recvfrom和sendto函数UDP回射客户/服务器UDP注意点socket编程(十五)udp聊天室实现socket编程(十四)UDP特点无连接基于消息的数据传输服务不可靠一般情况下UDP更加高效UDP客户/服务基本模型recvfrom和sendto函...原创 2019-04-22 13:13:52 · 364 阅读 · 0 评论 -
(二)socket编程(四)
目录socket编程(十一)套接字I/O超时设置方法(一)使用alarm 函数设置超时(二)套接字选项:SO_SNDTIMEO,SO_RCVTIMEO,调用setsockopt设置读/写超时时间(三)使用select函数实现超时用select实现超时read_timeout函数封装write_timeout函数封装accept_timeout函数封装co...原创 2019-04-22 13:11:03 · 324 阅读 · 0 评论 -
(三)进程通信(五)-POSIX消息队列/共享内存
目录34POSIX消息队列POSIX消息队列相关函数POSIX消息队列示例35POSIX共享内存POSIX共享内存相关函数POSIX共享内存示例34POSIX消息队列posix消息队列的一个可能实现如下图:POSIX消息队列相关函数编译时候加上 -lrt 选项,即连接librt 库 (实时库)#include <fcntl.h&g...原创 2019-05-08 00:12:26 · 356 阅读 · 0 评论