socket编程相关
文章平均质量分 79
cws1214
这个作者很懒,什么都没留下…
展开
-
网络编程简单示例
本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代码实例。要理解本文所谈的技术问题需要读者具有一定C语言的编程经验和TCP/IP方面的基本知识。要实习本文的示例,需要Linux下的gcc编译平台支持。 Socket定义 网络的Socket数据传输是一种特殊的I/O,Socket也转载 2012-10-16 11:08:00 · 500 阅读 · 0 评论 -
epoll两种类型ET和LT区别(结合实际例子)
目前银联采用的方法是LT模式,如果epoll可读(大于某个边沿值),读取需要的数据长度,从epollset中del掉,处理完逻辑之后再加入epollset,如果接收缓冲区仍然有数据,因为是LT模式,会继续通知,重复上述过程(读取需要的长度...)淘米框架则采用ET模式,可读(只通知一次,后面不再通知),则一直读知道EAGAIN,需要处理分包粘包等问题。在一个非阻塞的so转载 2015-08-14 15:40:14 · 3536 阅读 · 0 评论 -
select、poll、epoll区别对比
linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、实现、性能等方面对三者进行对比。 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);int poll(struct po转载 2014-11-19 15:57:49 · 654 阅读 · 0 评论 -
epoll简单介绍
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __转载 2013-12-26 16:45:02 · 629 阅读 · 0 评论 -
ZMQ简介
一、ZeroMQ 的背景介绍 引用官方的说法: “ZMQ (以下 ZeroMQ 简称 ZMQ)是一个简单好用的传输层,像框架一样的一个 socket library,他使得 Socket 编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ 的明确目标是“成为标准网络协议栈的一部分,之后进入 Linux 内核”。现在还未看到它们的成功。但是,转载 2013-09-23 10:29:32 · 4772 阅读 · 0 评论 -
socket字节流解析(网络抓包解析)
研究了一下PHP和C++socket通讯,用C++作为服务器端,php作为客户端进行.socket通讯是基于协议的,因此,只要双方协议一致就行.关于协议的选择:我看过网上大部分协议都是在应用层的协议,选用这样的协议很方便,基本上就是字符串传过来,传过去本次研究的协议算是当今国际化的一个标准做法.length+flag+body(长度+类型+内容)的方式,total_转载 2013-08-13 23:27:35 · 15765 阅读 · 2 评论 -
如何才能做到网站高并发访问
文章架构简图: 高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储)。如:能缓存在用户电脑本地的,就不要让他去访问CDN。 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了。能访问静态服务器的,就不要去访问转载 2013-08-09 18:48:15 · 887 阅读 · 0 评论 -
高并发高流量网站架构
Web2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们。但Web2.0以用户为导向的理念,使得新生的网站有了新的特点——高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了新的要求。 本文围绕高并发高流量的网站架构设计问题,主要研究讨论了以下内容: 首先在整个网络的高度讨转载 2013-08-09 18:48:55 · 917 阅读 · 0 评论 -
HTTP请求头详解
HTTP由两部分组成:请求和响应。当你在Web浏览器中输入一个URL时,浏览器将根据你的要求创建并发送请求,该请求包含所输入的URL以及一些与浏览器本身相关的信息。当服务器收到这个请求时将返回一个响应,该响应包括与该请求相关的信息以及位于指定URL(如果有的话)的数据。直到浏览器解析该响应并显示出网页(或其他资源)为止。HTTP请求HTTP请求的格式如下所示:[]在HT转载 2013-08-06 23:16:45 · 1771 阅读 · 0 评论 -
socket解析http协议头
/******* http客户端程式 httpclient.c ************/#include #include #include #include #include #include #include #include #include #include #include #include //////////////////////////////httpclient.c 开始//转载 2013-08-06 22:21:52 · 4279 阅读 · 0 评论 -
长短连接使用
长连接与短连接所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。 比如http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。转载 2013-08-01 22:21:07 · 926 阅读 · 0 评论 -
epoll ET LT模式详细
“EPOLLET”就是ET模式的设置struct epoll_event struEvent;struEvent.events = EPOLLIN | EPOLLOUT | EPOLLET;struEvent.data.fd = hSocket; epoll_ctl(m_hEpoll, EPOLL_CTL_ADD, hSocket, &struEvent);如果将监听套接转载 2013-08-01 19:20:38 · 1913 阅读 · 0 评论 -
TCP拥塞控制
一、互联网概述TCP,即传输控制协议,是目前网络上使用的最多的传输协议,我们知道,整个互联网的体系结构是以IP协议提供的无连接的端到端的报文传输服务为基础,在这种体系结构下,那么端到端的数据传输需要自己来保证数据的可靠性,TCP所作的就是这样的工作,它提供了端到端的数据可靠性的传输,当然,在互联网上没有100%的可靠性保证。正是因为TCP的贡献,所以自从提出后就成为了网络的标准传输协议。先转载 2013-03-21 18:22:51 · 1126 阅读 · 0 评论 -
tcp协议包头分析
相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. 而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。 因此在这里详细解释一下这两个过程。转载 2013-03-21 18:55:23 · 1471 阅读 · 0 评论 -
tcp/ip协议栈源码分析
一.linux内核网络栈代码的准备知识1. linux内核ipv4网络部分分层结构:BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件主要有:/net/socket.c /net/protocols.c etc INET socket层:BSD socket是个可以用于各种网络协议的接口,转载 2013-03-21 18:50:54 · 1466 阅读 · 0 评论 -
getaddrinfo()函数详解
1. 概述IPv4中使用gethostbyname()函数完成主机名到地址解析,这个函数仅仅支持IPv4,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储IPv4地址的空间。IPv6中引入了getaddrinfo()的新API,它是协议无关的,既可用于IPv4也可用于IPv6。getaddrinfo函数能够处理名字到地址以及服务到端口这两种转换,返回的是一个addrin转载 2013-04-02 22:01:11 · 626 阅读 · 0 评论 -
关于TCP乱序和重传的问题
TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相转载 2016-09-04 09:50:09 · 53004 阅读 · 11 评论