1、同样是C/C++开发,服务器端和客户端差别大吗? 如果一直做客户端,跳槽去做服务器端,能立即上手吗?
其实差异不大。
客户端一般包括UI和后台。后台主要是发送和接收UI传来和服务器端传来的控制信息。
服务器端一般只有后台和基本的命令行。主要就是接收客户端的控制信息和发送给客户端控制信息。比客户端后台多的就是处理客户端发来的信息。
2、C/C++ 有哪些适合快速开发的socket服务器框架
如果有 C++ 背景可以考虑用 Thrift,这个需要服务器和客户端一起使用。
如果只考虑服务器,Go 和 NodeJS 都是不错的选择,看看官方的例子就已经比较清楚了。
至于 socket 连接的稳定性,主要还是在于 TCP 心跳检测和数据重传做的好不好,对于信道不好的情况,比如使用 3G 卡做联网时,要每隔几十秒就发一个没有数据的心跳包,保证尽早检测到断线请求,尽早重连。服务器端性能应该问题不大,就算设备每秒钟都发数据只要业务不太复杂就不会遇到什么瓶颈。
3、如何用C语言开发一个通用web服务器?
用C语言开发WEB,可以用C++BUILDER6,称ISAPI,一般人可能做不起来,有点麻烦;
唯一是速度很快,别人看不到源码,掌握了编程套路,也可以开发应用;
缺点:
1。不是解释性语言,做的WEB调试非常麻烦;现在做WEB开发的,用C#、JAVA较多;都是解释性的语言;
2。因为是.DLL的二进制代码,一般商业网站不给予运行的环境,因为网站服务器会被你可能搞瘫,安全性得不到保障;所以,你得自备网页服务器;
3。得不到技术支持,因为没几个人会这种开发;
4、C/C++做服务器需要学习什么样的技术
服务器所用到的知识:
TCP/UDP,最基本的
并发——你可以选择使用select、poll,或者是多线程、多进程
如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性
还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解
推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。
5、有没有c语言开发服务器的书 网上大都是c++的开发服务器
也不是说C不适合做服务器,到C做的都是精品,例如nginx,mysql等,如果是商业服务的话,还是用C++的效率更高
6、用C/C++开发大型高性能服务器需要学习哪些方面的知识
第零步 C语言,推荐:《C语言程序设计:现代方法》
第一步 UNIX/Linux系统编程, 推荐《UNIX环境高级编程:第三版》《Linux/UNIX系统编程手册》
第二步 TCP-IP详解卷一 卷二 卷三
第四步 精研nginx源码,再研究一下skynet,breeze之类
一步一步走下来,没基础的人大概需要3年,有基础的人2年。
7、继续上一个问题,那要用c或者c++来开发服务器呢,用什么工具及环境?
linux环境还是windows环境?
如果是linux环境的话,个人觉得vi/vim编辑器,再加上gcc环境和makfile足以具备开发的准备条件。
如果是windows的话,visual studio 2005(或者更高版本)开发应该不成问题。注:以上属个人见解,希望能够帮上一二,呵呵。
8、各位大哥,小弟想请问下C/C++服务器端编程是做什么的。需要学些什么。麻烦详细一点。谢谢
C/C++的服务器端,比如我们经常玩的网游,那个服务器端大部分都是C/C++编程的。还有本地连接,网上邻居,ftp协议之类的,基本上windows的客户端网络服务都有对应的服务器。
当然要学习C/C++服务器编程,涉及的方面就比较多了,重要的有网络连接,多线程,数据存储等等的。
你可以参考一下腾讯在C/C++服务器编程工程师的要求。
工作要求:
工作有激情, 认真负责,尽职尽责,沟通协作意识良好,能够承担工作压力,具备良好的学习能力和分析解决问题能力;
全面的软件知识结构(操作系统、数据结构、数据库系统、网络安全),有两年以上互联网应用开发经验,有无线互联网后台开发经验优先;
熟练使用C/C++语言,熟悉Linux下调试、开发环境,对多线程、缓存系统、高性能、高可用系统有经验者优先;
熟悉TCP/IP协议,能熟练使用网络分析工具分析网络相关的故障,有一定的网络编程经验;
熟悉数据库的设计、使用与基本调优,熟练使用mysql数据库进行业务开发;
熟悉Linux,具备Linux下的系统开发经验;
具备大并发、分布式存储、大容量系统开发运营经验优先。
9、为什么说C/C++不适合做web开发
用C语言开发WEB,我用C++BUILDER6做过,称ISAPI,一般人可能做不起来,有点麻烦;
唯一是速度很快,别人看不到你的源码,掌握了编程套路,也可以开发应用;
缺点:
1。不是解释性语言,做的WEB调试非常麻烦;现在做WEB开发的,用C#、JAVA较多;都是解释性的语言;
2。因为是.DLL的二进制代码,一般商业网站不给予运行的环境,因为网站服务器会被你可能搞瘫,安全性得不到保障;所以,你得自备网页服务器;
3. 得不到技术支持,没人邦你,因为没几个人会这种开发;
10、游戏服务器开发为什么很少使用c
C# 开发速度高 对于现代计算机来说,运行效率不是问题.. 最起码比JAVA快得多得多
C++ 开发速度慢但是这是相对于熟练度来说的, 一个熟练使用C++的程序员开发一个东西也不慢 运行效率自然不用说..
很明显,C#有个和JAVA一样的特性.需要运行环境. 而C++则不需要..
这就绝定了. C#程序的传播有局限性
综合JAVA和C++的特点,我最终感觉C#是个非常矛盾的产物
论跨性, C#不及JAVA..(JAVA哪不能运行? C#呢,目前只能在WINDOWS)
论效率,C#不及C++.
所以觉得学习C#,实在不如去学习JAVA或者C++.