有问题就有答案
Q1:大型服务器一般用什么语言写啊,c++能写后台服务器吗,和jsp有什么区别,因为现在分专业 ,有较好
C++是C语言延伸的语言,兼容了C语言,同时也支持面向对象。而C语言是最接近汇编语言的语言之一。C++继承了其高效性,同时兼具了面向对象的特性。这决定了C++能做的事很多。其他高级语言说到底都是调用底层语言的接口或是进行改造封装。现在大多数后台都是C/C++做的。还有,其他高级语言能做的事,C++基本都能做,但是由于其他语言对其进行一定封装,使用确实方便。但始终保持一个原理:好用的,损失了效率。通用的始终没有专用的在一方面牛逼。如果你有较好的C++基础,建议选专业时不要放弃C++。
Q2:做linux后台服务器开发。要掌握c++吗?我怎么看每条招聘信息上都是精通c/c++
服务器这块如果做界面应该是需要C++的,我是底层的,只需要用C和汇编
Q3:本人现在工作已经两年,一直从事于Linux c/c++,从事金融行业,想问一下有做服务器后台开发的
你应该知道,银行的真正的业务处理系统的后台是大型机,而且基本上都是IBM的ES/9000,少数用日本的富士通,不是我们中国人会做的,因为大型机都是不开放的,也就是说,它的CPU芯片设计制造(CPU都是128位的,无法在市场上采购到)、外围组件的设计制造、主机板的设计制造、BIOS的设计开发、操作系统的设计开发、数据库的设计开发、编程语言的开发工具、应用系统的中间件、应用系统的本身等等全都是同一家公司负责完成的,其中的技术是不对外公开的,都属于他们公司的商业机密。比如,IBM的操作系统就叫ES9000,它的数据库是DB2,它的编程语言是Cobol,它的中间件是 CICS,它的银行后台系统只能由他们公司的技术人员才能开发,那些开发人员的工资待遇相当于美国总统的1.8倍。上世纪我博士毕业之初有幸在银行科技处任职(按规定套了副处级公务员),目睹过那些IBM派来的应用系统开发人员,他们来按中国人提出的要求修改银行应用系统(因为中国的银行系统要分为“对公会计业务”和“对私储蓄业务”,IBM以前在其它国家做的系统没这种区分,只有一套储蓄业务处理系统),那些人享受的待遇是每天1000美元(当年人民币对美元的市场比价超过10比1,我领副处级月薪才3100,一般公务员的月薪才千余元)而且他们吃住在五星级宾馆的费用要这边出,还要每月给他们提供一次来回美国与他们家人团聚的旅费。我本人作为中国人参与过最核心的业务就是在IBM小型机AS400和RS6000上开发通信协议转换软件,因为IBM大型机不支持TCP/IP通信协议只支持SNA通信协议,我们要把营业点用TCP/IP协议传来的数据包解包并重新打包成SNA数据包发给ES9000,或者ES9000交来的SNA包转换成TCP/IP包发给前端。RS6000用的是Unix系统,AS400的操作系统也是Unix的变种。
Q4:C/C++做服务器需要学习什么样的技术
服务器所用到的知识:TCP/UDP,最基本的并发——你可以选择使用select、poll,或者是多线程、多进程如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。
Q5:同样是C/C++开发,服务器端和客户端差别大吗? 如果一直做客户端,跳槽去做服务器端,能立即上手吗?
其实差异不大。客户端一般包括UI和后台。后台主要是发送和接收UI传来和服务器端传来的控制信息。服务器端一般只有后台和基本的命令行。主要就是接收客户端的控制信息和发送给客户端控制信息。比客户端后台多的就是处理客户端发来的信息。
Q6:用C语言进行web后端编程有什么不妥?
没有什么问题,之前有很多CGI都是用C来写的。但是现在很少有人用C直接写CGI了,因为有更好用的PHP、PERL、PYTHON