51CTO博客开发
(接上文)为了找到第二个命题的解决方法,我们可以再回过头来看看本文中第一版的服务器程序。前面也说了,第一版程序的问题在于,一条线程服务一个连接,而OS切换线程的开销很大,所以造成性能上不去。但第一版程序绝对是愉快的顺序编程。如果我们想保留顺序编程,那应该怎么克服性能方面的缺陷呢?问题被直接导向为:既然OS调度线程很吃力,那是否存在一种“用户态线程”,由程序自己调度,让OS一边玩儿去?先抛出答案,所
首先不好意思,盗用了福特汽车的广告语,呵呵。今天想在这里探讨一下高性能服务器(server)编程的一些通用技术(或者说是思想)。编程技术发展至今,高性能服务器编程领域仍然是C语言的菜。而C语言在服务器编程中的技术,也不断在实践中提高,正暗含我们的题目。有基础的初学者写的第一个基于TCP的服务器程序,想必大概是这样的:while (1){ &
我们知道在Java中利用Gson这个包可以很方便地将Object和Json进行自动转换(串行化/反串行化)。其原理是利用了Java的反射机制。最近我的项目中需要将C结构体与Json自动互转。项目背景其实是一个类似protobuf的json协议生成与解析,协议很多,所以我们肯定是希望从一个C结构体的对象自动转成Json,不然协议一条一条自己写,手筋要累断。要实现这个需求,首先就要给C结构体加入反射机
VLC是pc时代流媒体播放器的标杆,相信大家都有接触。VLC的流媒体部分是基于开源的live555库。live555的代码我稍微看过一些,基于C++的,说实话,代码写的有点乱,不太符合一个开源库的档次。不过,live555的有点是兼容性相当的好,很多不是很标准的流媒体码流,都能适当兼容。也正因为此,VLC作为一款播放器,较受欢迎。最近我在开发一个android app,需要用到流媒体播放器,主要用
当然了,是给公司做的。架构是我设计的,服务器也是我实现的。P2P的原理就不讲了,就讲讲实现它的关键点:1、公网肯定要有个服务器做节点双方的交互。为了上大并发,节点和服务器之间我们用UDP协议。2、如何做UDP穿透,其实现在RFC都有标准的流程。之前的博文,ICE就是这个东西。3、为了效果,肯定要做端口猜测。不过对称NAT和对称NAT之间,无论怎么样,穿透概率都很低。4、P2P的关键,还是在于做UD
本来想去chinaunix去博启一把的,我了个去,chinaunix的后台明显不给力啊,响应速度慢的很,操作指示也不完善,放弃。你说开博这事儿吧,挺有装逼的意味。早些年看过一篇文章,说IT界面人之难。今个儿和同事聊天,也说起怎么面人。我说看博客啊,然后一想我自己不也没博客么,想想岂不把自己埋没了,这可不行啊。IT技术博,如果写些技术细节,那就没意思了。博客终究而言是一种文学形式,作为IT技术博,我
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号