![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络
yiling2012
这个作者很懒,什么都没留下…
展开
-
再谈select, iocp, epoll,kqueue及各种I/O复用机制
首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiplexing (select and poll)signal driven I/O (SIGIO)asynchronous I/O (the POSIX aio_functions)blocking I/O 这个不用多解转载 2014-06-30 15:05:46 · 340 阅读 · 0 评论 -
关于ping程序
关于网络编程,知之甚少,linux环境下编程的经验也比较缺乏,于是乎,在百度文库上下载了一个关于ping的程序设计,照着将代码敲打一遍,顺便熟悉某些东东。 敲完代码,运行时,发现错误极多,正好也试着学习用GDB调试。下面是一些琐碎的知识点,写写加深印象。 1. 关于ping程序 用于确定本地主机与网络中其它主机的网络通信情况,常使用ping程序。ping程序向指转载 2015-01-20 17:20:36 · 320 阅读 · 0 评论 -
linux网络编程之-----多播(组播)编程
什么是多播 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。 多播,也称为“组播”,将局域网中同一业务类型主机进行了逻辑上的分组,进行数据收发的转载 2014-12-30 16:56:06 · 445 阅读 · 0 评论 -
Linux 网络编程之ioctl函数
1.介绍Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的信息,所以,我们有必要了解一下ioctl函数的具体实现.2.相关结构体与相关函数#include int ioctl(int d,int request,....);转载 2014-12-26 11:06:53 · 301 阅读 · 0 评论 -
IPv4和IPv6的互操作性
最近几年,IPv4可能是已经接近枯竭了,所以我们又推出了IPv6,在未来几年内,我们的IP可能是IPv6的了,但是对于现存的大量的基于IPv4代码的服务器和客户端,我们是不是都得做出大量的更新?或许我们要看互操作性了! 对于IPv4和IPv6,我们可以分为IPv4和IPv6的客户端和服务器,下面我们来分别讨论一下对于不同的服务器我们怎么建立这个连接, 第一:IPv4转载 2014-11-22 17:16:42 · 442 阅读 · 0 评论 -
EAGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接
EAGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接EWOULDBLOCK用于非阻塞模式,不需要重新读或者写EINTR指操作被中断唤醒,需要重新读/写在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。从字面上来看,是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non转载 2014-09-28 11:37:26 · 306 阅读 · 0 评论 -
epoll_create, epoll_ctl和epoll_wait
NAME epoll - I/O event notification facility SYNOPSIS #include DEscrīptION epoll is a variant of poll(2) that can be used either as Edge or Level Triggered转载 2014-09-28 16:31:30 · 374 阅读 · 0 评论 -
Epoll基本介绍
epoll的接口非常简单,一共就三个函数。epoll用到的所有函数都是在头文件sys/epoll.h中声明:int epoll_create(int size);创建一个epoll的句柄,size用来告诉内核这个监听的数目一共有多大。需要注意的是,当创建好epoll句柄后,它就是会占用一个fd值,在linux下如果查看/proc/进程id/fd/,是能够看到这个fd的,所以转载 2014-09-04 11:07:46 · 294 阅读 · 0 评论 -
有关epoll的EPOLLOUT
epoll使用的资料网上一大把,EPOLLIN(读)监听事件的类型,大家一般使用起来一般没有什么疑问,无非是监听某个端口,一旦客户端连接有数据发送,它马上通知服务端有数据,一般用一个回调的读函数,从这个相关的socket接口读取数据就行了。但是有关EPOLLOUT(写)监听的使用,网上的资料却讲得不够明白,理解起来有点麻烦。因为监听一般都是被动操作,客户端有数据上来需要读写(被动的读操作,EPOL转载 2014-09-04 11:42:18 · 387 阅读 · 0 评论 -
完成端口(CompletionPort)详解
手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----- By PiggyXP(小猪)前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,转载 2014-07-10 15:45:16 · 324 阅读 · 0 评论 -
epoll_create, epoll_ctl和epoll_wait 实例讲解,总结得不错
NAME epoll - I/O event notification facilitySYNOPSIS #include DEscrīptION epoll is a variant of poll(2) that can be used either as Edge or Level Triggered inter转载 2014-06-18 11:27:12 · 444 阅读 · 0 评论 -
游戏服务器之网络收发线程处理详细分析
业务网络收发线程的循环部分,处理网络数据的接收和发送。设计上:(1)先检查所有连接是否处于正常状态。(2)网络的处理是读优先的,有读才检查写,写的检查是一段时间检查一次(目前是50ms)。实现上通过两个epoll描述符来处理。第一个epoll描述符监听所有连接的读事件,并处理网络数据的接收。第二个epoll描述符监听所有连接的写事件(顺带会检查读事件),转载 2014-06-18 10:08:54 · 484 阅读 · 0 评论 -
CreateIoCompletionPort和完成端口
摘自《Networking Programming for Microsoft Windows》第八章“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!从本质上说,完成端口模型要求我们创建一个Win32完成端口对象,通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求转载 2014-07-08 14:11:53 · 390 阅读 · 0 评论 -
IP、TCP、UDP数据包长度问题
IP数据包长度问题总结首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Data)在应用层 它们的关系是 数据帧{IP包{TCP或UDP包{Data}}} -----------------------------转载 2014-07-04 10:43:24 · 960 阅读 · 0 评论 -
TCP/IP协议数据报结构详解
如图3所示,IP数据报中依次包括以下信息: 1、Version=4,表示IP协议的版本号为4。该部分占4个BIT位。 2、Header Length=20 Bytes,表示IP包头的总长度为20个字节。该部分占4个BIT位,单位为4个字节,因此,一个IP包头的长度最长为“1111”,即15*4=60个字节。 3、Type of Service=00,表示服务类型为0。该部分用二个十六进转载 2014-07-02 17:31:53 · 614 阅读 · 0 评论