网页游戏需要开放哪些端口

0

网页游戏(Web Game)通常不直接需要在用户端(如浏览器)开启任何特定的端口,因为它们是通过HTTP或HTTPS协议运行在服务器上的,用户直接在浏览器中访问即可。然而,对于服务器端,特别是如果游戏采用了WebSocket等实时通信技术,服务器可能需要监听一些特定的端口,例如:

1. HTTP/HTTPS端口:80(HTTP)和443(HTTPS)是服务器对外提供服务的常规端口,网页游戏服务器可能会监听这些端口。

2. WebSocket端口:WebSocket通常在8080或44344等非标准端口运行,用于实现实时的玩家交互。

3. 游戏服务器端口:针对游戏内部的通信,可能会有专门的端口,比如5700,6112等,这些端口的具体设置取决于游戏引擎和配置。

请注意,不同的游戏可能有不同的端口设置,建议查阅游戏的官方文档或服务器管理员指南获取准确信息。同时,如果你在家庭或企业环境中遇到端口访问问题,可能需要检查防火墙设置,确保这些端口是开放的。

新手编程导论(十)

13.4 范型设计与实作那么以上多范型设计图中,“面向用户和开发者”的高阶接口应提供什么呢,这并不是一个有标准答案的问题(这不可能是一个形式的活动,只能是一个感性的活动),根据“设计的方法学”,我们只需做列举题与选择题,比如以下:

设计中主要解决的大大小小的瓴域逻辑有如下(因为这些库逻辑最终要进入实现,所以我只在设计中含有最基础最原子的那些功能和接口,比如图形方面的逻辑,动画啊什么的,(这是业务领域的轮子,,外来轮子才是另外轮子,源程序树应该另外轮子各占一文件夹,主就放在根文件夹内),更高阶部分才发展业务领域逻辑,发展更高阶的逻辑,比如场景管理,资源管理,,

当发展具体游戏也即实现部分时应该远离设计, 毕竟复用是设计复用,而不是实现复用,,但这个实现也有这个实现意义上的设计(因为二者根子上都是软件抽象的本质),设计与实现这二者是在某个范围相对的,而且只有模糊分界,,面对整个系统时架构师有划分,而且在程序员某模块中也有小设计,所以C++的各项语言能力,都可用来设计或编码,它是应用语言也是设计语言,,只是OO不太适合出现在面向复用的设计中):不要提供很大的跟OO一样的logics,,,只有通过设计模式串联起来的才是大逻辑(这才是银弹,OO维度太低了),谷歌网页小游戏有哪些游戏,其它的都是小逻辑,就跟boost里面的库一样。。

网页游戏需要开放哪些端口

这个产生的库要求很强的扩展能力(很强的被复用能力,所以要求基于复用的设计元素),所以我用了LOKI,OO方面的东西用得比较少(因为我相信template 加loki的设计能力和理念作为设计标准库,就该善用它,而OO更应该用在非设计的实现中,因为用OO设计复用时需要大量的学习成本,不应用OO 的眼光对设计分层级)。

这个游戏引擎充分利用了stl和loki逻辑。而且还复用了OPENGL,我始终相信stl和loki才是标准库,为了最大清楚程序地呈现利用C++和这二个语言标准库来设计应用,,,我没有引入太多的库,,我克意不引进太多的第三方库,(所以很多小逻辑我都直接发明轮子以避免使用到第三方库),,因为这是基于前述清楚教育的目的而且我个人能力也有限,,(比如下面我不会的碰撞检测逻辑所以我刚好省掉它);,所以这个游戏引擎也是省略了很多功能的(比如碰撞等瓴域逻辑,本来一般图形引擎和游戏引擎是需要ODE的但我省了),。但这个库作为游戏引擎,最最基础的功能它还是都包括的,你完全可以二次开发,加入更多复用逻辑或自己的逻辑,,将其扩展成大全的游戏引擎。

当然,这不是游戏引擎,,仅仅是个可称为图形引擎的东西(当然,限于教育目的,我并不打算把它写得跟ogre一样面面具到不提供很多接口过多选择,比如GL,DX)。然而,通过增加网络逻辑,等其它方面的逻辑,它就可以形成为一个游戏引擎(作业:重构里面有相应的作业)

1. 我曾设想Lua部分写Game.dll,我把总架构做到了扩展逻辑之后作为Lua代码,因为我认为那是具体游戏的事而不是GameEngine的事了,因为我还觉得“具体游戏才是游戏”,而这里的GameEngine似乎称为“用计算机模拟游戏世界的引擎”(ComputerSimutWorldEngine)更为合适,因此GameEngine.DLL最好的说法是VREngine,但是另一方面,也有另外一种做法那就是把扩展逻辑和VR逻辑中间放置一个Game总架构逻辑,这样G总架构逻辑就在Lua之前了,会是C++的代码,这样也是一种非常好的选择)游戏是一个对等或C/S的模型,因此分PeerSideGeneric和ServerSideGeneric,(我一开始设计时GameGeneric曾把这二个设计原语加了进去,说实话这就不是一个好的设计,因为只要在具体游戏的逻辑中才会出现客户端和服务端之说,而GameGeneric管理一些更为低层的逻辑,这样做就犯了设计的大忌,过早把实现混合成架构做进了设计中)

GenericInterLogicPolicyLib已经是一种很好的方案,已经是一种根本的实现与逻辑分开策略,,需要作一层复杂的中间封装逻辑,这层抽象可能被集成到GameGeneric中)一个游戏GameGeneric就是LogicGeneric加上ClientSideGeneric的总和(逻辑上下或平等互饰构成逻辑总和,应用于是被建立起来)并由此定义出一个游戏比如NotWar3(这才是真正的编码与实现部分,就是几个Demo中要谈到的),或者我们可以把实作出的LogicGeneric置于ClientGeneric的底层(,这正是我们要采取的方式,作为中间逻辑的库之间应如何架构,它们之间的逻辑应如何,这也是我们要考虑的)。

我们一直提倡逻辑与实现分开(这是设计的基本准则),这样设计有没有做到呢?,这里要说一下实现与逻辑分开,然而即便是这个说法本身也有点含糊,说实话这绝对是一个具体问题具体分析的活,(就以上面的设计来说,我至少可以找出几个逻辑与实现的说法,比如,但是大体上可以分为二类,Generic外部的和内部的,反正我自认为上图已经体现了足够好的逻辑与实现分开,如果你不这么认为,那么你一定有比我更好的方案,不妨说出来听听或指出我的缺点,对于实现与逻辑分开,我曾认真思考过为GameLogicGeneric中的每个个体增加一种联系到GameShowGeneric,但是这个设计我后来放弃了,这样做看起来合理实际上只会增加实现与逻辑的偶合性而且在实现上也是很复杂的,而且压根就不需要这样做因为

不必拘泥以上的思想模型(任何人构架的逻辑模式和逻辑用词都可以不一样这不是严格的,但最终的应用反映在代码上要能工作这却是严格的),你画出的原语设计图同样正确,再简单也没关系,也不一定要成档,因为这只是严重参杂了个人看法的东东(只有当后来的多范型设计时才慢慢走入编程的束缚,因为这是参照编程界现成方案的设计,因此大家做出的设计都差不多一样)

请注意到,上述图中很多用词显然仅属于思想过程的中间描述(即仅仅是描述原语的用词,比如GameGeneric中的Generic这个词就表示它可能是一种架构逻辑也可能是实现逻辑,这里就用Generic来整个描述这个层次抽象, 即Generic=”一切中间逻辑”代词,它并不一定被封装成一个库也并不一定要在后来的多范型设计中要求被体现,可能会在源程序中用名字空间来表达,C++中的名字空间表达了一种什么样的本质呢?一个名字空间就是一个应用架构中某个子架构,或称为抽象层次的总称,而我们这里提出了四个即1.Design Policy Generic2,VR Generic3,Game Generic4,Extend Generic,其中3,4是特别的手机单机游戏三国志刘备传,如果3是为4服务,那么3,4实际上可以合并,如果Game有它自己的架构,那么3,4是分开的,Generic,Generic就是一种组织所有某个抽层的架构和实现的形式,名字空间也使我们的源程序能够很好地硬盘上被组织,Java的源程序包中的文件夹形式就是一种表现),因为我们此时在进行原语设计,不必考虑面向代码将其反映出来,这样我们考虑问题的范围会更广一点(实际进行多范型设计时要反映出来的就是那些能实际作用代码的用词,像上面大部分后带Generic饰词的中间逻辑集都要被体现,我们在实作部分会给出一个经过修饰的原语图,从原语设计到多范型设计到UML设计我们称为设计的演化),但无论如何要明白,一些对设计过程中用到的思想辅助用词是不必考虑进设计的代码实现的。原语设计跟多范型设计中间存在比较大的距离(真正的原语设计不是超级原语,虽然它名为原语,但它是在可控范围内权衡做到的原语,真正的多范型也并不是一团没有根据的计算机实现,它要也要面向前面的原语设计得出的结论,它们之间的联系要优于它们之间的区别被我们考虑)

1. Extend Generic=Game Generic+Lua Bind Generic(或者Game Generic自成一个Generic,此时就要求Lua Bind不是仅对Game Genric进行Bind,而是对下面各个Genric进行Bind)

我们常用登陆器都知道,客户端最初的连接是 某服务器 XXX.XXX.XXX.XXX 44405。这个44405在服务器端是由CS创建的,也就是说,客户端最初连接的是CS,CS接收到一个连接信息后,先判断客户端信息和由JS从55557送来的GS信息是否匹配,如果匹配则通过验证,从ConnectServer.dat文件中读取全部GS列表信息,所以客户端实际连接的IP和端口是由ConnectServer.dat文件来定义的。

这些端口都有什么用呢?以下将继续更新 客户端透过服务器与数据库建立直接联系的全过程, 明白了这些,就可以知道哪些数据到底通过什么端口连接了哪个IP, 对于根据自己的情况采取合适的分机分线策略很有益处。

GameServer.exe IP地址乙 55970 IP地址丙 55960 55901 与IP地址乙的55970端口,IP地址丙的55960端口建立连接,同时创建55901游戏端口

JoinServer.exe /p55970 /caIP地址甲 /cp55557 创建55970监听端口 同时与IP地址甲的55557

服务器安全问题就得看你个人选的什么服务器,一般开服用的比较多的是高防物理服务器,对于攻击以及网络入侵机房有专业的技术人员为您的游戏业务保驾护航

GameServer.exe IP地址乙 55970 IP地址丙 55960 55901 与IP地址乙的55970端口,IP地址丙的55960端口建立连接,同时创建55901游戏端口

JoinServer.exe /p55970 /caIP地址甲 /cp55557 创建55970监听端口 同时与IP地址甲的55557端口建立连接

专题: 最单机三国游戏   萌三国游戏单机   三国游戏单机4