对于服务器开发需要学习什么?
我现在想找一份服务器开发的工作,已经写了一个ftp服务器采用多进程的基于linux的,但是现在去找工作发现很多游戏公司是手游公司,我一个朋友说手游服务器不用多线程多并发,...
我现在想找一份服务器开发的工作,已经写了一个ftp服务器采用多进程的基于linux的,但是现在去找工作发现很多游戏公司是手游公司,我一个朋友说手游服务器不用多线程多并发,而且基本在windows上,我很纳闷,现在就想问下是不是手游服务器都是基本运行在windows上的,但我想做基于linux的服务器开发或者基于linux的应用开发,这方面的工作好找么?我已经看了c++primer,unix网络编程1卷,unix高级环境编程,我还需要学习什么呢?
展开
1个回答
2015-05-08
展开全部
服务器所用到的知识:
TCP/UDP,最基本的
并发——你可以选择使用select、poll,或者是多线程、多进程
如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性
还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解
推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。
TCP/UDP,最基本的
并发——你可以选择使用select、poll,或者是多线程、多进程
如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性
还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解
推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。
云创
2023-07-25 广告
2023-07-25 广告
Web应用安全测试服务的费用因服务提供商、测试范围、测试复杂度、测试时间等因素而有所不同。以下是一些可能影响费用的因素:1. 服务提供商:不同的服务提供商可能有不同的定价模式和费用标准。一些大型的安全测试机构可能会收取较高的费用,而一些小型...
点击进入详情页
本回答由云创提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询