1、linux系统用C语言写个视频服务器,求老前辈们指导
我的c语言只有二级水平,班门弄斧了。
似乎,linux本身就有几个不错的开源视频服务器,
如果要求不高的话可以直接使用他们的;
如果他们的不能达到要求,可以使用c些一些代码做转换,然后使用popen,system之类的调用;
或者,借鉴开源的视频服务器代码自己深度加工;
gstreamer本身就是专门处理视频流的,可以看看能不能用上。
2、做一个C/S架构的程序,是先编服务器好,还是先编辑客户端好?
首先,你要选好技术路线。
其次,因为是C/S程序,涉及到两个进程的通讯,所以你需要先定义好两者通讯的基础设施层,如:通讯方式,通讯协议,以及相关的序列化、反序列化API
然后就可以分别编写服务器或者客户端程序了。
说到这里,你可能也看清楚我想表达的意思了,先编客户端或者先编服务器其实都无所谓。
3、C/C++做服务器需要学习什么样的技术
服务器所用到的知识:
TCP/UDP,最基本的
并发——你可以选择使用select、poll,或者是多线程、多进程
如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性
还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解
推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。
4、本人现在工作已经两年,一直从事于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的变种。
5、用c/s做的客户端怎么访问服务器
可以通过直接访问服务器端数据库完成。不过在访问的过程中,为了安全考虑。可以先将客户端发送的数据转码或者加密。然后到服务器端后解密或者再转码。管理员可以通过B/S程序完成查看功能。C/S和B/S用同一个库就可以了。如果连的是外网,就要考虑很多安全因素。
6、客户端是windows下C#做的,服务器是linux下C语言做的,用socket如何实现客户端与服务器之间互传数据?
我有用过Windows 发布WebServices 然后Java调用,还有在Linux系统里的mono上调用过。 这个可以考虑下?
7、局域网中运行 \\服务器ip\c$,不能查看到服务器的c盘;怎么做?共享文件夹中已经有C$
运行-mstsc-服务器IP-用户名和密码,就行了。
服务器上一定要有密码,还要开通远程服务才行。
mstsc是微软自带的远程服务。
希望能帮你。
8、各位大哥,小弟想请问下C/C++服务器端编程是做什么的。需要学些什么。麻烦详细一点。谢谢
C/C++的服务器端,比如我们经常玩的网游,那个服务器端大部分都是C/C++编程的。还有本地连接,网上邻居,ftp协议之类的,基本上windows的客户端网络服务都有对应的服务器。
当然要学习C/C++服务器编程,涉及的方面就比较多了,重要的有网络连接,多线程,数据存储等等的。
你可以参考一下腾讯在C/C++服务器编程工程师的要求。
工作要求:
工作有激情, 认真负责,尽职尽责,沟通协作意识良好,能够承担工作压力,具备良好的学习能力和分析解决问题能力;
全面的软件知识结构(操作系统、数据结构、数据库系统、网络安全),有两年以上互联网应用开发经验,有无线互联网后台开发经验优先;
熟练使用C/C++语言,熟悉Linux下调试、开发环境,对多线程、缓存系统、高性能、高可用系统有经验者优先;
熟悉TCP/IP协议,能熟练使用网络分析工具分析网络相关的故障,有一定的网络编程经验;
熟悉数据库的设计、使用与基本调优,熟练使用mysql数据库进行业务开发;
熟悉Linux,具备Linux下的系统开发经验;
具备大并发、分布式存储、大容量系统开发运营经验优先。
9、c语言有网络编程有没有人使用c做游戏服务器
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。
10、如何用C语言开发一个通用web服务器?
用C语言开发WEB,可以用C++BUILDER6,称ISAPI,一般人可能做不起来,有点麻烦;
唯一是速度很快,别人看不到源码,掌握了编程套路,也可以开发应用;
缺点:
1。不是解释性语言,做的WEB调试非常麻烦;现在做WEB开发的,用C#、JAVA较多;都是解释性的语言;
2。因为是.DLL的二进制代码,一般商业网站不给予运行的环境,因为网站服务器会被你可能搞瘫,安全性得不到保障;所以,你得自备网页服务器;
3。得不到技术支持,因为没几个人会这种开发;