|
用户名:tosz 笔名:vfly 地区: 广东省-深圳市 行业:其他 |
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
vfly---We fly. Fly for fun, fly for life
揭开Socket编程的面纱
TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。
这里有一张图,表明了这些协议的关系。

图1
TCP/IP协议族包括运输层、网络层、链路层。现在你知道TCP/IP与UDP的关系了吧。
Socket在哪里呢?
在图1中,我们没有看到Socket的影子,那么它到底在哪里呢?还是用图来说话,一目了然。

图2
原来Socket在这里。
Socket是什么呢?
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
你会使用它们吗?
前人已经给我们做了好多的事了,网络间的通信也就简单了许多,但毕竟还是有挺多工作要做的。以前听到Socket编程,觉得它是比较高深的编程知识,但是只要弄清Socket编程的工作原理,神秘的面纱也就揭开了。
一个生活中的场景。你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等交流结束,挂断电话结束此次交谈。 生活中的场景就解释了这工作原理,也许TCP/IP协议族就是诞生于生活中,这也不一定。
图3
先从服务器端说起。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
在这里我就举个简单的例子,我们走的是TCP协议这条路(见图2)。例子用MFC编写,运行的界面如下:

图4

图5
在客户端输入服务器端的IP地址和发送的数据,然后按发送按钮,服务器端接收到数据,然后回应客户端。客户端读取回应的数据,显示在界面上。
下面是接收数据和发送数据的函数:
int Receive(SOCKET fd,char *szText,int len)
{
int cnt;
int rc;
cnt=len;
while(cnt>0)
{
rc=recv(fd,szText,cnt,0);
if(rc==SOCKET_ERROR)
{
return -1;
}
if(rc==0)
return len-cnt;
szText+=rc;
cnt-=rc;
}
return len;
}
int Send(SOCKET fd,char *szText,int len)
{
int cnt;
int rc;
cnt=len;
while(cnt>0)
{
rc=send(fd,szText,cnt,0);
if(rc==SOCKET_ERROR)
{
return -1;
}
if(rc==0)
return len-cnt;
szText+=rc;
cnt-=rc;
}
return len;
}
服务器端:
在服务器端,主要是启动Socket和监听线程。
#define DEFAULT_PORT 2000
void CServerDlg::OnStart()
{
sockaddr_in local;
DWORD dwThreadID = 0;
local.sin_family=AF_INET;
//设置的端口为DEFAULT_PORT。
local.sin_port=htons(DEFAULT_PORT);
//IP地址设置成INADDR_ANY,让系统自动获取本机的IP地址。
local.sin_addr.S_un.S_addr=INADDR_ANY;
//初始化Socket
m_Listening = socket(AF_INET,SOCK_STREAM,0);
if(m_Listening == INVALID_SOCKET)
{
return ;
}
//将本地地址绑定到所创建的套接字上
if(bind(m_Listening,(LPSOCKADDR)&local,sizeof(local)) == SOCKET_ERROR )
{
closesocket(m_Listening);
return ;
}
//创建监听线程,这样也能响应界面上操作。
m_hListenThread = ::CreateThread(NULL,0,ListenThread,this,0,&dwThreadID);
m_StartBtn.EnableWindow(FALSE);
m_StopBtn.EnableWindow(TRUE);
}
监听线程函数:
DWORD WINAPI CServerDlg::ListenThread(LPVOID lpparam)
{
CServerDlg* pDlg = (CServerDlg*)lpparam;
if(pDlg == NULL)
return 0;
SOCKET Listening = pDlg->m_Listening;
//开始监听是否有客户端连接。
if(listen(Listening,40) == SOCKET_ERROR)
{
return 0;
}
char szBuf[MAX_PATH];
//初始化
memset(szBuf,0,MAX_PATH);
while(1)
{
SOCKET ConnectSocket;
sockaddr_in ClientAddr;
int nLen = sizeof(sockaddr);
//阻塞直到有客户端连接,不然多浪费CPU资源。
ConnectSocket = accept(Listening,(sockaddr*)&ClientAddr,&nLen);
//都到客户端的IP地址。
char *pAddrname = inet_ntoa(ClientAddr.sin_addr);
pDlg->Receive(ConnectSocket,szBuf,100);
//界面上显示请求数据。
pDlg->SetRequestText(szBuf);
strcat(szBuf," :我是老猫,收到(");
strcat(szBuf,pAddrname);
strcat(szBuf,")");
//向客户端发送回应数据
pDlg->Send(ConnectSocket,szBuf,100);
}
return 0;
}
服务器端一直在监听是否有客户端连接,如有连接,处理客户端的请求,给出回应,然后继续监听。
客户端:
客户端的发送函数:
#define DEFAULT_PORT 2000
void CClientDlg::OnSend()
{
DWORD dwIP = 0;
TCHAR szText[MAX_PATH];
memset(szText,0,MAX_PATH);
m_IP.GetWindowText(szText,MAX_PATH);
//把字符串形式的IP地址转成IN_ADDR结构需要的形式。
dwIP = inet_addr(szText);
/span>m_RequestEdit.GetWindowText(szText,MAX_PATH);
sockaddr_in local;
SOCKET socketTmp;
//必须是AF_INET,表示该socket在Internet域中进行通信
local.sin_family=AF_INET;
//端口号
local.sin_port=htons(DEFAULT_PORT);
//服务器的IP地址。
local.sin_addr.S_un.S_addr=dwIP;
////初始化Socket
socketTmp=socket(AF_INET,SOCK_STREAM,0);
//连接服务器
if(connect(socketTmp,(LPSOCKADDR)&local,sizeof(local)) < 0)
{
closesocket(socketTmp);
MessageBox("连接服务器失败。");
return ;
}
//发送请求,为简单只发100字节,在服务器端也规定100字节。
Send(socketTmp,szText,100);
//读取服务器端返回的数据。
memset(szText,0,MAX_PATH);
//接收服务器端的回应。
Receive(socketTmp,szText,100);
TCHAR szMessage[MAX_PATH];
memset(szMessage,0,MAX_PATH);
strcat(szMessage,szText);
//界面上显示回应数据。
m_ReplyBtn.SetWindowText(szMessage);
closesocket(socketTmp);
}
客户端就一个函数完成了一次通信。在这里IP地址为何用127.0.0.1呢?使用这个IP地址,服务器端和客户端就能运行在同一台机器上,这样调试方便多了。当然你可以在你朋友的机器上运行Server程序(本人在局域网中测试过),在自己的机器上运行Client程序,当然输入的IP地址就该是你朋友机器的IP地址了。
简单的理论和实践都说了,现在Socket编程不神秘了吧?希望对你有些帮助。
深圳地震了。。
昨天晚上7:53左右,我还在办公室里用功,突然感觉到办公室有明显的晃动。我就知道地震了。以下是官方的说法:
接广东省地震局监测中心报告:9月14日19时53分,在广东省担杆岛海域(北纬22.0度、东经114.3度)发生3.6级地震,深圳市有震感,震中距深圳约60公里。根据目前的资料分析,发生破坏性地震的可能性很小,请广大市民放心。
强烈要求加强预警机制
敏捷开发必须注意的12项原则 [forward]
Free Download: MSDN Library May 2006 Edition
For the first time, we're making the MSDN Library freely available for download from Microsoft Downloads. Previously, the Library was only available for download to MSDN subscribers. The current download is the May 2006 Edition and future editions will also be available when we release them.
MSDN Library provides access to essential programming information, including technical white papers, software development kits and code samples necessary to develop web services and applications. This is an updated version of the MSDN Library for Visual Studio® 2005.
无法访问www.mp3-tech.org
在指责别人篡改历史的时候,是不是也该问一声自己隐瞒了多少事实?
封网声音不断,google, msn, sourceforge,等等。这样做除了满足少数无耻企业的利益外,对我们普通的用户来讲,只能是无奈。。
意大利终场点球绝杀 黄健翔罕见激动解说
从意大利赢得点球到托蒂射入击败对手,黄健翔用高亢而近乎嘶哑的嗓音对意大利队和制造点球的左后卫格罗索进行了高度评价。他生动地将格罗索的这次突破称为三位伟大左后卫的“灵魂附体”,并在获胜之后高呼“马尔蒂尼生日快乐”!
赛后接受央视连线采访时他本人他也表示,自己激动得并不记得在那一分钟内自己具体说了些什么。尽管目前网友对黄健翔的此次激情演绎存有一定争议,但和96年欧洲杯决赛深夜那激动人心的解说一样,黄健翔今晚的解说无疑将又一次成为中国电视足球转播史上又一次经典.
——亚昆塔,唉!点球!点球!点球!格罗索立功了,格罗索立功了!不要给澳大利亚人任何的机会。
——伟大的意大利的左后卫!他继承了意大利的光荣的传统。法切蒂、卡布里尼、马尔蒂尼在这一刻灵魂附体!格罗索一个人他代表了意大利足球悠久的历史和传统,在这一刻他不是一个人在战斗,他不是一个人!
——托蒂,托蒂面对这个点球。他面对的是全世界意大利球迷的目光和期待。
——施瓦泽曾经在世界杯预选赛的附加赛中扑出过两个点球,托蒂肯定深知这一点,他还能够微笑着面对他面前的这个人吗?10秒钟以后他会是怎样的表情?
——球进啦!比赛结束了!意大利队获得了胜利,淘汰了澳大利亚队。他们没有再一次倒在希丁克的球队面前,伟大的意大利!伟大的意大利的左后卫!马尔蒂尼今天生日快乐!意大利万岁!
——这个点球是一个绝对理论上的决杀。绝对的死角,意大利队进入了八强!
——胜利属于意大利,属于格罗索,属于卡纳瓦罗,属于赞布罗塔,属于布冯,属于马尔蒂尼,属于所有热爱意大利足球的人!
——澳大利亚队也许会后悔的,希丁克,他在下半场多打一人的情况下他打得太保守、太沉稳了,他失去了自己的勇气,面对意大利悠久的历史和传统,他没有再拿出小组赛那样猛扑猛打的作风,他终于自食其果。他们该回家了,他们不用回遥远的澳大利亚,他们大多数都在欧洲生活,再见!
中国人正在上的4个大当——肯定包括你
买房意味着什么?意味着你拥有了一个属于自己的房子。是的,你是这样以为,但是在中国你并无法拥有这个房子,只是租给你而已。因为房子是你的,地不是你的,只是把土地使用权租借给你70年(从现在退70年那是抗日战争时期,谁见过那时候的房子?)。房子通常情况下30年左右就会遇上拆迁或者旧房改造。也就是说你花了买房的钱,却只能得到租房的实际效果。当然这还不是最坏的。最坏的是,当几十年后你发觉上当了!有一群流氓冲进你用一辈子积蓄买下的房子,画上一个大大的拆字!然后把你的家当全部当垃圾一样的仍出门外,不顾你的苦苦哀求,甚至还在报纸上给你按一个钉子户的臭名,任大众辱骂的时候你就会知道什么叫做绝望!
形容中国的房地产有一个很有名的笑话是这样写的:
以前,有个地主有很多地,找了很多长工干活,地主给长工们盖了一批团结楼住着,一天,地主的谋士对地主说:东家,长工们这几年手上有点钱了,他们住你的房子,每月交租子,不划算,反正他们永远住下去,你干脆把房子卖给他们起个名堂叫做-----公房出售!告诉他们房子永远归他们了,可以把他们这几年攒的钱收回来,地主说:不错,那租金怎么办?谋士说:照收不误,起个日本名儿,叫物业费!地主很快实行了,赚了好多钱,长工们那个高兴啊!
过了几年,地主的村子发展成城镇了,有钱人越来越多,没地方住,谋士对地主说:东家,长工们这几年手上又有钱了,咱们给他们盖新房子,起个名堂叫做旧城改造,他们把手上的钱给我们,我们拆了房子盖新的,叫他们再买回去,可以多盖一些卖给别人,地主又实行了,这次,有些长工们不高兴了,地主的家丁派上用途了,长工们打掉牙只好往肚子里咽,地主又赚了好多钱。 六月联盟2wMN
又过了几年,地主的村子发展成大城市了,有钱人更多了,地主的土地更值钱了,谋士对地主说:东家,咱们把这些长工的房子拆了,在这个地方建别墅,拆出来的地盖好房子卖给那些有钱的大款还能赚一笔,地主说:长工们不干怎么办?谋士说:咱给他们钱多点儿,起个名堂叫货币化安置,咱再到咱们的猪圈旁边建房子,起个名堂叫经济适用房,给他们修个马车道让他们到那边买房住,地主说:他们钱不够怎么办?谋士说:从咱家的钱庄借前给他们,一年6分利,咱这钱还能生钱崽,又没风险,地主又实行了,长工们拿到钱,地主的经济适用房到现在才建了一间,长工们只好排队等房子,直到现在,还等着呢------
于是,长工们开始闹事了,地主有点慌,忙问谋士怎么办?谋士说:赶紧通知长工们,房子要跌价了,别买了,租房住吧,正好把我们的猪圈租给他们,结果,这么多年后,长工们的钱全没了,还在租房住,直到永远!
这个笑话虽然有点夸张,但实际上这何尝又不是事实呢?有人说既然如此?为什么中国人还要买房?疯了一样的买?为什么?还不是愚民教育的结果,就好象60 年代,鼓吹人们必须购买三大件:手表、缝纫机、自行车才算是成功人士才可嫁人娶妻。70年代鼓吹人们必须购买新四大件:电视,冰箱,洗衣机,装电话才算是出人头地才可娶妻生子一样,记得当年装电话可是要几千块钱一部啊(人均收入不到200的小城),而北京上海更有上万一部的时候,还得排队买号搭人情,和今天的买房又何其相似?
而今天所有的狗屁学者又开始了这一套愚弄百姓的旧招:白领一族新标准,成功人士新选择X环X路小户型,X环X路商住型。收了你几十万后,还得每个月收你租金(新物业费),银行利息,以及各种巧立名目的加息、政策等等等等。总之不怕你不被整死,就怕你死得不够惨!老百姓咋就怎么乐于上当,而且百上不厌呢?我真是气得浑身都湿了!
第二大当:就业
当有人终于开始感叹:当年当知青的时候,当有人下岗之后感到没有生路,只能静坐抗议却无人理会,只能沦落街头还被人编首歌嘲笑着人生豪迈,重头再来的时候。你可曾想过!他们也曾经和今天的白领一样风光!他们的收入和地位也曾经让周围的人艳羡不已?你可曾想过20年后的今天!你一样会和他们一样沦落街头,众叛亲离?!
有人说嘿!你不知道有失业保险,养老保险,XX保险么?呵呵,我在北京漂泊N年,交了无数保险大概有好几万吧,但失业的时候跑断腿也没人给我啥保险,反而很多保险都被冻结了说我交得断断续续的,我简直又气得……这还不算,你以为你到了60岁真的就可以拿到养老保险了吗?天上又不会掉钱!今天的老年人拿的退休金是我们在挣!而今天30-40岁的人通常都有好几个兄弟姐妹!意思就是,今天的老年人能在60岁拿到养老保险是因为有5个人供一个老人!而我们这一代老去之后则是一个人供我们两个老人!钱从哪里来?没得来!您要是能活到90岁估计能领到一些养老保险,嘿保重吧您。然而即使是这样,家长们还是疯了一样的把孩子往各种企事业国有单位里送,我身边就经常有这样的例子。我老家一个远房亲戚,找关系拖朋友,花了七万块钱通过公开招聘把儿子送进了交警队,干上合同制的police。一个月拿800块。结果第三年被竞争上岗给刷下来了。一家人哭哭啼啼,我说刷了好,你上那班一辈子挣不回那七万,赶紧先洗洗睡,改明再凑点钱做小生意去吧!没准还能赚点。
当年我毕业的时候,我妈也是领着我抱着钱,把我往XX部送。我一看负责招工那人那德行,就忍不住的恶心,再一看薪水,妈呀,我这不是白干10年不吃不喝才拿回成本。所以我私下威胁了那家伙一把,吓得那个大腹便便的X科长 再也不敢招收我。我才得已:离家出走.
我就想不明白?中国人咋就这么傻?这么迷信国字呢?醒醒吧,思维正常一点行不?做事之前自己算算合算不合算成不?
还有那些年纪轻轻的小白领们,找工作最好把薪水要高点,别要医疗保险和啥保险,然后自己把钱存起来最保险,将来用得着。
第三大当:教育
一张文凭值多少钱?一张文凭值多少钱?一张文凭值多少钱?印刷成本两块钱顶了天了。一个老师工资多少?嘿,两个学生的学费足够一学期了!一个班的书本印刷多少钱?两个学生的足够了!一个班房租多少钱一学期?嘿嘿两个学生足够了。! 嘿!中国教育你凭啥收那么多钱!?
嘿!百姓们!我们为啥要上当?因为从小统治阶级就告诉我们考上秀才才光荣。哦对不起我说错了,是考上大学才光荣。但老百姓从来不去想一想为什么光荣?为什么光荣…… 大学秀才又怎样还不是废物!
你知道你的孩子是什么人在教么?在中国一般是无法适应社会的人才会沦为一个教师,举个例子。前段时间我因为一个项目的关系,找了几个大学的硕士生做程序。结果有几个人笨得很,完全不给你考虑,非得你守着才干活,而且给个文件明显有一个错别字,也不给改,等你发现了还跟你较真,是这不是他的错,是你给的就是错的。一点责任感,一都不会考虑究竟是为了做事而做事还是为了做好一件事而做事。我还是很心平气和的给他们讲道理:你们必须学会为别人思考,思考别人想要什么结果再去做事情。否则无法在社会上生存。结果那几个说:我们才不要去社会上,我们考试成绩好得很,学校要我们留校做老师。再说了本来我们就没什么错,你怎么安排我们怎么做,你不安排我们就不做。这是我们的尊严和原则。我说:如果你去守门,老板没安排你下班的时候锁好仓库你就不锁了吗?您心寒吗?以后您的孩子就是在这样的人的指导下学习和成长。您放心么?
难怪现在读大学的同居,逃课,打架,自杀…… 但家长们还是愿意花钱把孩子送进学校去,而且是花一辈子的钱。
第四大当:买车
中国人疯了吗?买车?为什么要买车???当然您有了钱花不光了,您爱怎么买怎么买,买车买房,反正油价怎么涨你也花不完钱,房子要拆迁你也不心疼。但是大多数老百姓呢?
我以前有个同事住北二环,公司西直门那里。每天坐地铁上班最多半小时。可非得买一二手夏利,每天早上8点开始在路上堵着,然后一点一点的挪到公司。嘿,一个月停车费都不少。可人家就觉得开了车自己身份高级一点。别说开个夏利,就是开个奥迪我也没见谁对谁三磕九拜。除了显得自己比别人傻一点外完全没有别的作用。
还有一次,我遇见一个月收入才4000的小姑娘,在计划贷款买车。于是我就问她:小姑娘,你又没做生意,自己按时上班,地铁又方便,买车干什么呢?想了半天,实在估计也想不出什么理由来了就说:有时候去超市买东西吧,打车又觉得近了点不划算,走路又远了点。所以自己开车去了!听得我差点没恶心死。你开车去超市买个方便面不觉得恶心么?装备了大哥大去拣垃圾,也是拣垃圾的!别以为买了车能证明什么。(转载)
[转]华为员工劳累致死引发争议 天堂那边还有加班吗
华为新闻发言人傅军表示,虽然过度劳累与胡新宇死亡不构成直接的因果关系,但确实也有相关性,公司高层已经高度重视对此事的处理,公司也重申了加班政策,晚上十点以后加班要经过批准,不准在公司打地铺过夜
2006年5月28日晚,中山大学附属第三医院,25岁的胡新宇因病毒性脑炎被诊断死亡。多天的抢救仍无法挽回胡新宇的年轻生命,他的全身多个器官在过去的一个月中不断衰竭,直至最后一刻。
毕业于四川大学1997级无线电系二班的胡新宇,2002年考上成都电子科技大学继续攻读硕士,2005年毕业以后直接到深圳华为公司从事研发工作。在4月底住进医院以前,他从事一个封闭研发的工作,经常在公司加班加点,打地铺过夜。
“公司十分痛心。”华为新闻发言人傅军表示,虽然过度劳累与胡新宇死亡不构成直接的因果关系,但确实也有相关性,公司高层已经高度重视对此事的处理,公司也重申了加班政策,晚上十点以后加班要经过批准,不准在公司打地铺过夜。
胡新宇之殇
“如果不是长期过度劳累,小胡不会变成这样。”胡新宇的一个同学表示,长期超过身体负荷的工作削弱了他的免疫系统,让他的生命变得危险和脆弱。
胡新宇在华为日常的作息习惯是:晚上坐上公司近22点的班车,从坂田基地颠簸到关内的家中,到家时间已超过23点钟,然后早上7点起床去赶公司的班车上班。
今年4月初开始,胡新宇所在的接入网产品线(原为固网产品线)接入网硬件集成开发部进行一个封闭研发的项目,项目内容被严格保密。
这个项目开始后,胡新宇开始经常在公司过夜,甚至长时间在实验室的地上依靠一个睡垫打地铺,加班时间最长到次日凌晨2点左右。早上依旧早起,8点钟吃早饭,9点钟打卡上班。
4月28日,胡新宇身体极度不适,他请了假去医院就诊,29日,胡新宇坚持不住了,他几乎整个“五一”长假期间都在医院病床上,而不是公司实验室里度过,后来由于病情过重,转到中山大学附属第三医院住院。
一个胡新宇的同学回忆说:“2001年我们准备研究生考试的时候,约定2006年如果还在一个城市,就一起去看世界杯。他非常喜欢踢球,球技很好,身体也很好,我们本科的时候,常常连续踢五六个小时的足球,晚上还要玩通宵。这样的身体,在华为工作了短短的一年时间就垮掉,真的让人很难过。”
“想起他年轻的女朋友没有人疼爱,年迈的父母没有人去孝奉,再想起他曾经奔跑、微笑的样子,心里好像堵着一块石头。我现在只是想,小胡,你要走好,在天国的某个角落,你要好好地休息,不要再操劳,也没有加班,我们这些兄弟,会为你祝福。”胡新宇的同学们在悼念他的网页上写下这样的话。
噩耗传出后,胡新宇的同学和同事,自发地在网上聚集,对其进行哀悼,并发起了捐款。《第一财经日报》尝试联系胡新宇的家人,出于种种原因,他们保持沉默。
“狼”身下的睡垫
胡新宇的死亡,在华为员工中间引发了较大规模的争论。经过记者的采访和调查,对于胡新宇的死,华为内部员工存在不同的观点。
有人认为,胡新宇没有处理好工作与休息的关系,没有量力而行,造成这个结果有他个人的原因。有人提出疑问:“公司是家吗?为了公司这样不要命地加班,图什么呀?”
“我们要知道,我们所做的一切,只是为了提高生活质量,像他这种以健康换来的所谓华为考评A有什么意义?”
有人表示,无法理解,一个25岁的正常人,竟然经常性在办公室加班到半夜2点,而周围竟然没有人劝解。
难道胡新宇周围的人,都熟视无睹,习以为常?
也有部分员工认为华为对胡新宇的死负有责任,并质疑华为不合理的加班制度,甚至绩效考评和企业文化。一些华为的员工通过邮件等各种形式向记者反映了华为内部的相关情况,其中抱怨居多。
一位华为研发部的员工表示,华为把员工的加班算作绩效考核的一部分,整个公司的文化就是鼓励加班。
事实上,“床垫文化”伴随着华为从1988年成立一直到现在。华为员工每人的办公桌下都有一个床垫用于休息。
而华为凭借超常的发展,成为中国企业创业、创新和国际化的标杆。华为2005年实现销售收入453亿元,上缴地税及各项海关关税、增值税40亿元,拥有上万人的庞大研发团队,其中有本科学历的员工占三分之二以上,业务遍及全球。
深圳市社科院经济研究所所长许明达有一篇著名的总结华为为何成功的文章,他指出,对企业的责任感,创新精神、敬业精神与团结合作精神是华为所提倡的企业文化。
文章中提到,华为的总裁任正非有一个越出常规的思维,认为企业需要狼的精神,狼有三大特征:一是敏锐的嗅觉;二是不屈不挠、奋不顾身的进攻精神;三是群体奋斗。
他写道,创业中的华为,留下了一个传统,叫做“床垫文化”。几乎每个开发人员都有一张床垫,卷放在铁柜的底层,办公桌的下面。午休时,席地而卧;晚上加班,盈月不回宿舍,就这一张床垫,累了睡,醒了爬起来再干。一张床垫半个家,华为人携着这张床垫走过了创业的艰辛。“床垫文化”意味着华为人努力把智力发挥到最大值,它是华为精神的一个象征。
“但华为进来比较早的老员工使用床垫的频率不高了。”华为内部员工表示,老员工已经有资历和地位,有股票,收入也高,而后进员工则需要努力工作,才能获得比较好的绩效考评。
这从华为内部的工号可以看出端倪,2万号以前的是老员工,4万号以后的则是新员工,胡新宇的工号就是4万多号。为了获得好的绩效考评,是他长期没日没夜加班的动力之一。
华为的加班是大面积和普遍的,华为已经把“床垫文化”带到了全球业务所在的每个角落。
一位华为的海外工程师表示,从市场人员签第一期单子起,如果你是该项目组的成员,注定要为其精疲力竭,“鞠躬尽瘁”。华为只有靠有价格优势的设备费和较短的工程周期,与爱立信等国际巨头抢市场。
这就造成华为人需要忍受高强度的工作压力,进行周期短、工作量大的艰苦开拓。
“‘床垫文化’还得继续,不然华为如何跟海内外竞争对手拼?”一位华为员工表示,这是国内企业需要正视的,只是希望公司能更多关注员工的生活和工作状态,尤其要注意公平。
The 0x10 Best Questions
[转]以深圳为例揭开中国房地产的层层迷雾