摘要: 由于广播和组播不会建立连接,所以只能使用UDP协议. 广播就是向局域网中的所有主机发送广播报文. 1、IPv4地址的表示{子网id,主机id}A/B/C/D/E类地址, -1表示所有位都为1的字段 2、子网广播地址,{子网id,-1},指定子网上所有接口的广播地址192.168.1.0/24 该子 阅读全文
posted @ 2016-05-21 20:39 叫我大哥哥 阅读(848) 评论(0) 推荐(0) 编辑
摘要: 在一般的套接字编程中,我们只能读取内核给我们加工以后的IP数据包,并不能直接读取和修改原始的IP数据包,如果我们要修改原始的IP数据包,那么我们就需要原始套接字来接收数据包. 创建原始套接字 int socket(AF_INET, SOCK_RAW, protocol); 这个函数在前面已经介绍过了 阅读全文
posted @ 2016-05-21 20:01 叫我大哥哥 阅读(277) 评论(0) 推荐(0) 编辑
摘要: epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤 阅读全文
posted @ 2016-05-15 21:37 叫我大哥哥 阅读(198) 评论(0) 推荐(0) 编辑
摘要: select使用的是IO复用的方式进行多客户端的处理,当有客户端的连接以后会将该客户端的套接字等信息添加到队列中,然后采用轮询的方式来判断客户端是否有消息发送过来.如果客户端断开,重置队列信息,关闭套接字. 因为是使用轮询的方式进行,所以在较多客户端下速度会较慢,而且受到Linux文件 阅读全文
posted @ 2016-05-14 17:41 叫我大哥哥 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 通过一般的方法写的服务端是没法支持多客户端的访问的,而且进行IO操作容易阻塞,从而会影响其对客户端的响应. 我们可以通过一下几种方式进行多客户端的服务端设计: 如果我们要设计高并发的服务端,咱们可以将这三个方法和起来使用,高并发建议使用epoll技术处理,采用事件的方式,占用资源小,速度快.当达到一 阅读全文
posted @ 2016-05-13 21:45 叫我大哥哥 阅读(248) 评论(0) 推荐(0) 编辑
摘要: socket:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间 阅读全文
posted @ 2016-05-13 17:28 叫我大哥哥 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 服务端:一般服务端首先要将服务打开,在Linux中,网络服务的创建步骤基本上差不多.基本上这些代码都是可以通用的. #include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#incl 阅读全文
posted @ 2016-05-13 17:15 叫我大哥哥 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 网络协议就是计算机通过网络进行数据交换的一系列的标准,规则和规范的集合.常见的协议有TCP协议,IP协议,UDP协议,ICMP协议.这都都是传输方面的协议,还有应用层的协议如http协议,ftp协议等等,这个应用层协议是为了告诉别的计算机自己发送的数据是什么意思. IP协议:该协议是网络层协议,IP 阅读全文
posted @ 2016-05-13 16:32 叫我大哥哥 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 条件变量: 在系统死锁中有这么一个典型的实例:在一条生产先线上有一个仓库,当生产者生产的时候需要锁住仓库独占,而消费者取产品的时候也要锁住仓库独占。如果生产者发现仓库满了,那么他就不能生产了,变成了阻塞状态。但是此时由于生产者独占仓库,消费者又无法进入仓库去消耗产品,这样就造成了一个僵死状态。 我们 阅读全文
posted @ 2016-04-29 14:09 叫我大哥哥 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 读写锁: 读写锁与互斥量类似,不过读写锁有更高的并行性。互斥量要么加锁要么不加锁,而且同一时刻只允许一个线程对其加锁。对于一个变量的读取,完全可以让多个线程同时进行操作 pthread_rwlock_t rwlock读写锁有三种状态,读模式下加锁,写模式下加锁,不加锁。一次只有一个线程可以占有写模式 阅读全文
posted @ 2016-04-29 13:57 叫我大哥哥 阅读(390) 评论(0) 推荐(0) 编辑