![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
network program
wxliu1989
这个作者很懒,什么都没留下…
展开
-
Linux 网络编程一:基本阻塞通信
基本流程服务器端声明句柄fd和网络地址sockaddr_in赋值sockaddr_in为服务器的端口和INADDR_ANY表明监听任意连接调用socket函数创建一个socket并赋值句柄为fd调用bind函数将句柄fd和网络地址sockaddr_in进行绑定调用listen函数开始监听客户端的连接调用accept函数获得连接的客户端调用send recv函数进行数据发转载 2014-07-17 22:39:40 · 298 阅读 · 0 评论 -
http 头信息详解
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码转载 2014-12-10 23:16:56 · 461 阅读 · 0 评论 -
listen函数解析
listen(int socket ,int backlog)这个函数实际上是把需要监听的socket和监听队列的大小,传给内核,原创 2014-05-26 10:40:29 · 533 阅读 · 0 评论 -
Linux 网络编程二:非阻塞select
函数声明select函数int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);说明:int maxfdp是一个整数值,是指集合中所有文件描述符的范围,即所有文件描述符的最大值加1。fd_set *readfds是指向fd_set结构的转载 2014-07-17 22:43:38 · 389 阅读 · 0 评论 -
Linux网络编程三:非阻塞epoll
Epoll引入Epoll在linux 2.6内核中引入,替代了以前的select/poll模型,能够充分支持linux下的大规模并发网络程序。Epoll和其他linux下并发网络程序对比PPC典型的Apache模型,Process Per Connection,为每一个新的连接创建一个进程进行相关的处理。TPCThread Per Connection,为每一个新的连接创建转载 2014-07-17 22:44:36 · 1041 阅读 · 0 评论 -
解决服务器出现大量time_wait 的方法
今天早上一上班,有同事就反映公司好几个网站都打不开,登陆数据库服务器(windows),发现很卡,于是重启了下服务器,进入系统后,没过一会问题依旧,查看了下系统进程,发现mysql占用率达到99%,可以肯定的是mysql连接出现问题:netstat -an192.168.12.13:3306 192.168.12.12:30443 TIME_WAIT192.16转载 2014-07-19 14:40:32 · 1251 阅读 · 0 评论 -
aio,epoll,asio
这几天一直在做linux大批量数据的解决方案,不断的深入了解了一下aio,epoll,libevent,boost::asio。以前只知道他们都是做异步/非阻塞的,但是具体解决的问题的关键点是什么,通过这几天的深入了解,把他们总结一下:aio是linux2.6以后内核实现的异步IO,或者说他才是真正意义上的异步IO。epoll作为select的linux的替代品,解决了selectfd_s转载 2014-06-19 14:48:08 · 1290 阅读 · 0 评论 -
TCP close_wait 与 time_wait
这个问题之前没有怎么留意过,是最近在面试过程中遇到的一个问题,面了两家公司,两家公司竟然都面到到了这个问题,不得不使我开始关注这个问题。说起CLOSE_WAIT状态,如果不知道的话,还是先瞧一下TCP的状态转移图吧。关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况。前者是指有本地主机主动发起的关闭;而后者则是指本地主机检测转载 2014-07-18 21:34:52 · 313 阅读 · 0 评论 -
TCP timewait 原理
TCP/IP TIME_WAIT状态原理博客分类:网络协议-TCP/HTTP TIME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进转载 2014-07-19 14:38:19 · 417 阅读 · 0 评论 -
TCP 协议疑难解析
说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人。因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,转载 2014-07-17 23:01:58 · 751 阅读 · 0 评论 -
epoll的事件解释
epoll编程终结者在陆续写了《epoll模型编程的几个问题》《epoll模型编程的几个问题2》后,发现epoll有些不理解的地方。今天,深入了解了epoll的事件机制,发现epoll有两种事事件触发机制。一是边沿触发(edge triggered),一是电平触发(levle triggered)。写文一篇《epoll编程终结者》,以总结并终结之epoll的核心就是其事件机转载 2014-06-19 16:21:14 · 595 阅读 · 0 评论 -
socket 通信原理
socket编程原理 socket编程原理 1 问题的引入 UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操作的进程。然后这个用转载 2014-03-05 13:09:16 · 451 阅读 · 0 评论 -
TCP 中的EAGAIN错误
在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。 从字面上来看,是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如,以 O_NONBLOCK的标志打开文件/socket/FIFO,如果你连续做read操作而没有数据可读。此时程序不会阻塞转载 2014-07-17 23:13:15 · 1751 阅读 · 0 评论 -
Tcp 创建与断开连接过程
TCP/IP建立与断开连接详细过程 TCP协议连接建立时3次握手的过程。简述TCP协议连接建立时3次握手的过程。根据TCP头部,说明下列3个包在连接建立过程中的次序.0020 00 50 83 aa 46 49 3e dd 33 96 37 a3 a0 12 ...P..FI>.3.7...0030 16 a0 c4 c0 00 00 02 04 05 b4 0转载 2014-05-08 00:16:54 · 1206 阅读 · 0 评论 -
异步io与同步io,阻塞与非阻塞
同步io即是线程启动一个io操作后,会立即进入等待状态,等到io操作完成后才醒来继续执行,而异步io则是,线程发送一个io请求到内核,然后处理其它事情 ,内核完成io请求后,将会通知线程io操作完成了。如果io操作需要大量时间完成的话,使用异步io可以提高效率,因为在线程等待的这段时间里,cpu将可以调用其它的线程进行执行。如果io请求操作很快,则应该使用同步io。基本上io的读操作都转载 2014-05-06 16:19:49 · 539 阅读 · 0 评论