- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux网络编程复习题与知识点
1.3
TCP连接的建立与终止和TCP状态转换图 2MSL状态
难点:执行主动关闭的那端进入这种状态。这个端点在该状态的持续时间是2MSL(最长分节生命周期)。
存在TIME_WAIT状态有两个理由:
1.实现终止TCP全双工连接的可靠性(假设最后一个ack丢失的情况).
2.允许老的重复分节在网络中消逝.
2.4
套接字基本函数知道怎么用这些函数
套接字类型:
SOCK_STREA,:流式套接字[TCP支持];SOCK_DGRAM:数据包套接字[UDP支持];SOCK_RAW:原始套接字[允许对低于传输层的协议或物理网络直接访问;收发ICMP报、常用于检测新的协议]
第三章
各个函数和参数的作用
【close()与shutdown()】
区别:(1)close将描述字的访问计数减1,仅在此计数为0时才关闭套接口。用shutdown可以激发TCP的正常连接终止程序,而不管访问计数;(2)close终止了数据传送的两个方向:读和写。由于TCP连接是全双工的,有很多时候要通知另一端已完成了数据发送,即使那一端仍有许多数据要发送也如此。Shutdown函数可以仅仅关闭连接的读、写或两个方向都关闭。
函数返回的描述符
设置套接字选项
第四章
recvfrom和sendto函数的用法
第五章
默认为子进程先执行 父进程后执行 但是有sleep函数就不一样了
进程:定义了一个计算的基本单元,可以认为是一个程序的一次运行。它是一个动态实体,是独立的任务。它拥有独立的地址空间、执行堆栈、文件描述符等
父进程监听
子进程进行通信
wait和waitpid函数的用法
僵尸进程:一个已经终止,但是其父进程尚未对其进行善后处理的进程
线程的创建函数
传递参数问题
once函数
#include pthread.h
int pthread_once(pthread_once_t *once_control, void (*init_routine) (void))
成功返回0,否则返回错误码
如果本函数中,once_control变量使用的初值为PTHREAD_ONCE_INIT,可保证init_routine()函数在本进程执行序列中仅执行一次。
一般在init_routine函数中完成一些初始化工作。
LinuxThreads使用互斥锁和条件变量保证由pthread_once()指定的函数执行且仅执行一次,而once_control则表征是否执行过。如果once_control的初值不是PTHREAD_ONCE_INIT(LinuxThreads定义为0),pthread_once()的行为就会不正常;
互斥锁
pthread_mutex_lock(pthread_mutex_t *mptr)
——返回:成功0,否则返回错误码
如果互斥锁是静态分配的,就将mptr初始化为常值PTHREAD_MUTEX_INITIALIZER。
pthread_mutex_unlock(pthread_mutex_t *mptr) 用于互斥锁解锁操作。
——返回:成功0,否则返回错误码
线程的例子和I/O复用
第六章
要了解PPT上的各个函数,知道他们的作用
uname函数等
第9章 第13章
当客户处理多个描述字(一般是交互式输入和网络套接字),必须使用i/o复用
五个I/O模型 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
4个宏函数vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
FD_ZREO/将所有位设为0/、FD_CLR/将fd位设为0/、FD_SET/将fd位设为1/、FD_ISSET/检测fd位是否为1/
select函数 该函数有三种执行结果:
【永远等待下去】仅在有一个或以上描述字准备好i/o才返回,为此,我们将timeout设置为空指针。
【等待固定时间】在有一个描述字准备好时返回,但不超过由timeout参数指定的秒数和微秒数。
【根本不等待,检查描述字后立即返回,这称为轮询】这种情况下,timeout必须指向结构timeval,且定时器的值必须为0。
每次调用select前都必须对等待描述字集合完成初始化和设置工作
【Select()函数实现I/O多路复用的步骤】:vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
清空描述符集合;
建立需要监视的描述符与描述符集合的联系;
调用select()函数;
检查所有需要监视的描述符,利用FD_ISSET宏判断是否已准备好;
对已准备好的描述符进行I/O操作。
区别:pselect函数使用结
文档评论(0)