
网络
maikforever
码工,曾就值搜狐,360,acer 等公司
展开
-
LVS+keepalived负载均衡
背景: 随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高性能高可用的功能?有什么好的负载均衡可伸张可扩展的方案吗?答案是肯定的!有!我们利用 LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。 LVS+转载 2012-09-02 05:21:09 · 1032 阅读 · 0 评论 -
libevent在异步socket中的使用
学习libevent的使用的时候,在http://unx.ca/log/libevent_echosrv1c/上看到有三个例子,第一个例子最简单,只是介绍一下大概的使用方法;第二个例子是自己处理异步socket出现可读可写;第三个例子是使用libevent内部提供的bufferd来处理可读可写的事件。第一个例子:libevent_echosrv1.c转载 2012-04-28 17:04:24 · 1504 阅读 · 0 评论 -
多线程服务器的常用编程模型
多线程服务器的常用编程模型 陈硕 (giantchen_AT_gmail)Blog.youkuaiyun.com/Solstice2009 Feb 12 建议阅读本文 PDF 版下载: http://files.cppblog.com/Solstice/multithreaded_server.pdf 本文主要讲我个人在多线程开发方面转载 2012-04-25 18:02:32 · 814 阅读 · 0 评论 -
使用 libevent 和 libev 提高网络应用性能
管理多个 UNIX 网络连接Martin C. Brown, 作家, Freelance简介: 构建现代的服务器应用程序需要以某种方法同时接收数百、数千甚至数万个事件,无论它们是内部请求还是网络连接,都要有效地处理它们的操作。有许多解决方案,但是 libevent 库和 libev 库能够大大提高性能和事件处理能力。在本文中,我们要讨论在 UNIX® 应用程序中使用转载 2012-03-28 18:39:45 · 546 阅读 · 0 评论 -
开源网络通信库参考
Sockets tcp/ip communication libraryC++ Sockets LibraryThis is a GPL licensed C++ class library wrapping the berkeley sockets C API, and therefore works on most unixes and also win32. The library转载 2012-03-06 15:08:11 · 1029 阅读 · 0 评论 -
http chunk
有时候,Web服务器生成HTTP Response是无法在Header就确定消息大小的,这时一般来说服务器将不会提供Content-Length的头信息,而采用Chunked编码动态的提供body内容的长度。进行Chunked编码传输的HTTP Response会在消息头部设置:Transfer-Encoding: chunked表示Content Body将用Chunked编转载 2012-02-20 11:18:30 · 968 阅读 · 0 评论 -
开源点评:ZeroMQ简介
貌似有2个月没写技术帖了。今天,向各位程序猿同学介绍一个和网络通讯有关的开源项目——ZeroMQ(绰号 ØMQ,以下简称 ZMQ)。事先声明,本帖仅仅是简介,不涉及太深入的话题。 ★ZMQ是啥玩意儿? 通俗地说,ZMQ是一个开源的、跨语言的、非常简洁的、非常高性能、非常灵活的网络通讯库。 它的官方网站在"这里",维基百科的介绍在"这里"(暂时没有中文的维基词条)。转载 2011-12-14 14:19:46 · 898 阅读 · 0 评论 -
P2P之UDP穿透NAT的原理与实现(附源代码)
P2P 之 UDP穿透NAT的原理与实现(附源代码)原创:shootingstars参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在 这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。首先先介转载 2011-12-12 14:41:32 · 1311 阅读 · 0 评论 -
以小见大——那些基于 protobuf 的五花八门的 RPC(1)
赖勇浩(http://laiyonghao.com )Google protobuf(http://code.google.com/p/protobuf)提供了 service 关键字来描述 RPC,但没有实现,所以大家都纷纷自制 RPC,仅仅是在 protobuf 官网列出来的,就有十几个(http://code.google.com/p/protobuf/wiki/ThirdParty转载 2011-12-05 19:55:04 · 766 阅读 · 0 评论 -
WebQQ协议分析(1)——登录
申明:本文章只做研究之用,不得用于商业目的,不得大规模推出自己的QQ代替腾讯的产品,后果自负。 绪:一直想弄个程序与QQ直接通信,再弄个聊天机器人什么的,困于无从下手:QQ太麻烦了,抓包来看看吧,全是乱码,没个能读通的,明显加过密,解密的难度也太大了。好在出了个WebQQ,一切问题都解决了,因为浏览器要运行程序,得从服务器下载数据啊,也就是源代码了。源代码都有了,还转载 2011-12-05 11:26:04 · 816 阅读 · 0 评论 -
什么是TCP 三次握手及为什么进行三次握手?
TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。2. 服务器收到客户端发送过来的SYN报文后,向客户端发转载 2011-12-05 10:22:11 · 683 阅读 · 0 评论 -
STUN, STUNT, XSTUNT
STUN(From: http://zh.wikipedia.org/w/index.php?title=STUN&variant=zh-cn) STUN(Simple Traversal of User Datagram Protocol through Network Address Translators (NATs),NAT的UDP简单穿越)是一种网络协议,它允许位于NAT转载 2011-12-05 10:08:35 · 750 阅读 · 0 评论 -
集成libevent,google protobuf的RPC框架
RPC(Remote Procedure Call),中文翻译是远程过程调用,其实从原理来说这并不是一个新的概念.我的理解是, 不同的机器之间定义了一些接口, 也有客户端和服务器端,客户端可以通过协商好的接口调用服务器端已经注册好的服务.说白了,还是网络通信的那一套机制.既然还是网络通信,那么为什么需要使用RPC而不是自己去完成这样的一套工作呢?假如是自己做这样的事情,需要考虑编解码,网络层,尤其转载 2011-12-03 15:15:36 · 1192 阅读 · 0 评论 -
Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器
[ 2011-3-30 08:40 | by 张宴 ] [文章作者:张宴 本文版本:v1.0 最后修改:2011.03.30 转载请注明原文链接:http://blog.s135.com/libevent_windows/] 本文介绍了如何在 Windows 操作系统中,利用微软 Visual Studio 2005 编译生成 Libevent 2.0.10 静态链接库,并转载 2011-11-28 20:53:36 · 657 阅读 · 0 评论 -
数据接收中粘包及半包的处理
在使用TCP协议的网络应用中,不可避免需要处理的一个问题就是半包和粘包的情况。 一种做法是在接收端设一个比较大的缓冲区,先将收到的数据包都放到缓冲区中,然后从该缓冲区中选取完整的数据包出来。该缓冲区的实现可以使用环形缓冲区进行优化,避免频繁的数据移动。使用该方法的一个描述见http://www.vckbase.com/document/viewdoc/?id=1203 (重要)转载 2011-11-28 14:37:04 · 702 阅读 · 0 评论 -
failover技术
通俗地说,即当A无法为客户服务时,系统能够自动地切换,使B能够及时地顶上继续为客户提供服务,且客户感觉不到这个为他提供服务的对象已经更换。 这里的A和B可以存在于各种领域,但一般fail-over特指计算机领域的数据库、应用服务、硬件设备等的失效转移。转自http://baike.baidu.com/view/1084309.htm转载 2011-11-22 09:36:12 · 599 阅读 · 0 评论 -
网络通讯用户登陆验证简单流程
转自http://henryfan.net/post/2011/10/29/%E7%BD%91%E7%BB%9C%E9%80%9A%E8%AE%AF%E7%94%A8%E6%88%B7%E7%99%BB%E9%99%86%E9%AA%8C%E8%AF%81%E7%AE%80%E5%8D%95%E6%B5%81%E7%A8%8B.aspx转载 2011-11-21 14:59:52 · 717 阅读 · 0 评论 -
通过希网获取公网ip
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://scalpel00.blog.51cto.com/1071749/347971 很早写的一个,通过希网获取公网ip的程序片段,今天重新写了一遍 #include #include #include string.h> #转载 2011-11-08 15:46:28 · 644 阅读 · 0 评论 -
UDP穿透NAT的原理与实现(附源代码)
P2P 之 UDP穿透NAT的原理与实现(附源代码)原创:shootingstars参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。首先先介转载 2011-11-03 16:09:29 · 619 阅读 · 0 评论 -
ZeroMQ 的模式
在需要并行化处理数据的时候,采用消息队列通讯的方式来协作,比采用共享状态的方式要好的多。Erlang ,Go 都使用这一手段来让并行任务之间协同工作。最近读完了 ZeroMQ 的 Guide。写的很不错。前几年一直有做类似的工作,但是自己总结的不好。而 ZeroMQ 把消息通讯方面的模式总结的很不错。ZeroMQ 并不是一个对 socket 的封装,不能用它去实现已有的网络协议。它有自己的转载 2011-11-02 13:35:11 · 761 阅读 · 0 评论 -
protobuf在网络编程中的应用思考
protobuf简介protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持java、c++、python等语言环境。通过将这些类包含在项目中,转载 2011-11-02 13:34:39 · 505 阅读 · 0 评论 -
最强的p2p流媒体开源项目合集
Icecast http://www.icecast.orgtheorahttp://www.theora.orgpeercasthttp://www.peercast.orgfreecasthttp://www.freecast.orgactlabhttp://actlab.tv/index.htmtrevbushttp://www原创 2011-10-20 20:31:48 · 3198 阅读 · 1 评论 -
检测TCP非正常断开连接 SO_KEEPALIVE 使用缺陷分析
目前手头有个关于心博功能的一个案例, 在使用SOL_SOCKET, SO_KEEPALIVE上有一点心得,想写出来和大家分享一下。关于SOL_SOCKET选项SO_KEEPALIVE有一个很详细的英文How TO, 在下面的网页中大家可以看到详细的内容http://www转载 2011-09-26 10:06:24 · 836 阅读 · 0 评论 -
tcp keeplive
keepalive参数设置代码如下:// 开启KeepAliveBOOL bKeepAlive = TRUE;int nRet = ::setsockopt(socket_handle, SOL_SOCKET, SO_KEEPALIVE, (char*)&bKee原创 2011-09-26 10:00:55 · 886 阅读 · 0 评论 -
通过tcpdump/wireshark工具抓包Android平台
抓包工具TcpDump for Android + wireshark如果要抓TCP数据包,我们可以使用TCPdump工具,类似于windows/linux下使用的这个工具一样。具体方法是下载tcpdump,还有个地址是http://www.strazzere转载 2011-08-29 06:04:08 · 7946 阅读 · 1 评论 -
P2P直播的技术原理和改进
原文地址:http://bbs.tvkoo.com/dispbbs.asp?boardID=3&ID=4017&page=1 最近对P2P直播技术进行了一些研究,谈谈个人对Tvkoo软件的优缺点的看法,一方面希望Tvkoo能做的更好,另一方面也抛砖引玉一下: P2P直播的技术难点有: 一、防火墙的穿透:超过90%的电脑都在防火墙后面,如果让2台在防火墙后面的电脑能够实现P2P互联,这是一个技术的难转载 2011-06-17 17:26:00 · 924 阅读 · 0 评论 -
毕业生浅谈Google架构
首先声明:1、我并非是网站架构师,我刚毕业,只是对网站架构这方面比较感兴趣,于是就把自己学习的心得和大家分享,欢迎大家拍砖,但请稍微拍轻点,毕竟刚毕业的孩子伤不起啊:-)2、如果喜欢本文的朋友可以以任何形式转载,开心的话留个链接,不开心就算了,因为文中很多资料也是来自网络的。 其实不久前我在园子里也分享过一篇有关架构方面的文章各大网站架构总结笔记,感谢大家的点评和支持,让我在大家的转载 2011-06-17 16:33:00 · 870 阅读 · 0 评论 -
ACE中网络通讯编程基本架构
<br />原文来源:http://www.cppblog.com/walkspeed/archive/2007/02/25/18969.aspx<br /><br />ACE_INET_Addr类,包装了网络地址<br />ACE_SOCK_Connector类,扮演主动连接角色,发起通讯连接。连接到远端的服务。<br />ACE_SOCK_Acceptor类,扮演被动连接角色,等待连接。等待远端客户的请求。<br />ACE_SOCK_Stream类,扮演数据通讯角色,发送和接收数据。完成客户与服务之间转载 2011-05-25 12:06:00 · 1055 阅读 · 0 评论