Linux网络编程
文章平均质量分 53
zhuziyu1157817544
Raura.
展开
-
通用套接字地址结构
1.通用套接字地址结构起因: 当作为一个参数传递进任何套接字函数时候,套接字地址结构总是以引用的形式来传递,并且,这样有一个参数的人核桃皆自函数必须处理例子所有支持的任何协议族的套接字地址结构。因此在头文件中定义了一个通用的套接字地址结构。 2.通用套接字地址结构#include <sys/socket.h>struct sockaddr{ uint8_t sa原创 2017-03-29 19:55:09 · 1478 阅读 · 0 评论 -
同步异步阻塞非阻塞
今天在某乎看到的有关同步异步阻塞非阻塞的例子,很形象。老张烧水。名词:老张,会响的水壶,不会响的水壶。同步阻塞:老张用不会响的水壶烧水,得在旁边看者,什么也干不了。水沸腾倒暖壶以后才能走。同步非阻塞:老张时不时去看看水有没有开,没有开的话,回客厅看电视。异步阻塞:老张在水旁边等着,等水壶响了倒热水。异步非阻塞:老张等水壶响了去倒水,其余时间在客厅看电视,不去厨房原创 2017-08-04 21:28:55 · 429 阅读 · 1 评论 -
用select处理带外数据
回顾select:下面的事件支持selece可读: 1.socket内核接收缓存区中的字节数大于或等于其低水位标记SO_RCVLOWAT(0x1004)。我们可以无阻塞地读取该socket,并且读操作返回字节数为0。 2.socket通信的对方关闭连接。此时对该socket的读操作将返回0。 3.监听socket上有新的连接请求。 4.socket上有未处理的错误。此时我们可以使用getso原创 2017-06-03 11:19:04 · 1227 阅读 · 1 评论 -
半同步/半异步模式和领导者/追随者模式
半同步半异步模式:出现原因: 异步线程执行效率高,但是编写复杂,同步线程效率低,但是逻辑简单。服务器要求好的实时性和同时处理多用户的请求,英雌采用两者结合的形式。 具体情况: 过程: 异步线程见听到客户请求后,将其封装成请求对象插入请求队列,请求队列将通过通知某个工作在同步模式下的工作线程来读取并处理该请求对象。具体选择哪一个工作线程来服务这个客户请求,取决于请求队列的设计。变体:半同步半反原创 2017-05-18 18:54:10 · 2053 阅读 · 0 评论 -
Reactor和Proactor的区别
1.先解释同步和异步:同步异步是一种通信机制。同步:调用方需要保持等待直到I/O操作完成。异步:调用方可以不用保持等待,只需要操作系统完成I/O操作通知调用方就可以了。2.再说说阻塞和非阻塞:阻塞非阻塞是一种调用机制。阻塞:调用方等待I/O操作完成后才返回,就是阻塞的。非阻塞:调用方不需要等待IO操作完成就立即返回。非阻塞的情况下,常常需要多次调用去check,才能获得原创 2017-05-17 14:42:29 · 1151 阅读 · 0 评论 -
高级I/O函数总结
怕忘。pipe函数int pipe(int fd[2]); 返回值: 执行成功返回0,失败返回-1. 理解: pipe创建的这两个文件描述符分别构成函数两端,往fd[1]中写的数据可以从fd[0]中读出,fd[0]只能用于从管道读数据,fd[1]只能用于往管道写数据。管道内部传输的时字节流,管道本身拥有一个容量的限制,fcntl函数可以修改管道容量。dup和dup2函数int dup(in原创 2017-05-16 18:01:56 · 421 阅读 · 0 评论 -
select和poll回射服务器程序
select版回射服务器1.代码:/************************************************************************* > File Name: server.c > Author: zhuziyu > Mail: 1157817544@qq.com > Created Time: 2017年04月08日 星期六原创 2017-04-10 17:42:55 · 479 阅读 · 0 评论 -
基本TCP套接字编程总结
1.分配一个套接口的描述字及其所用的资源int socket(int family,int type, int protocol);//family指定协议族//type指定套接字类型//protocol指定为某个协议常数值12341234family选项AF_INETIPv4协议AF——INET6IPv原创 2017-04-10 10:49:57 · 842 阅读 · 1 评论 -
一个纯小白内心的读白--学习TCP/IP的开始
内心好奇又烦恼,不知道的太多了。先不总结我学习的TCP/IP。因为我都不好意思说我在学习TCP/IP.挡不住内心的悲伤。描述一个网络中的各个协议的常用方法是使用International Organization for Standardization的open systems interconnection模型,简称OSI模型。它与网际网协议族对比如下:看一个简单的时间获取客户程序#include原创 2017-03-22 13:49:27 · 564 阅读 · 2 评论 -
axel:多线程下载工具
定位:基于http,ftp协议的多线程下载工具,支持断点续传。axel github代码:axelubuntu16.04下载: apt-get install axel使用方法:1.man axel 2.axel -h axel -o target url 改目标文件名称 axel -s xx url 指定最大下载速度 axel -n x url 指定最大连原创 2017-08-15 16:24:14 · 1060 阅读 · 0 评论