有没有任何标准的协议,你可以制作游戏(如http,ftp),因为我在随机端口(1024-65300)上测试连接时遇到问题(我不得不转发我的路由器上的端口,它只有它一次只能使用一台计算机).
应该有,我的程序使用的东西,没有必要设置任何端口......
你知道我能用什么吗?我用c ++
ps我会对类似于http的东西感兴趣,有人发送请求而另一个发送响应.我在HTML中看到你必须发送到ip/index.html或类似的东西,我真的不懂如何使用...
IM程序不需要任何开放端口,因为它们是客户端程序.作为一般规则(注意出站防火墙),所有端口都对客户端上的传出连接开放.为了实际接受连接,端口必须允许传入流量.例如,大多数服务器可以接受所有端口上的传入流量.网络通信和协议的设计考虑到了这一点:客户端(您的浏览器)始终启动与服务器(网站)的连接,而不是相反.
至于协议,您应该使用TCP/IP或UDP,具体取决于您需要做什么.如果您计划通过使用近似值(大多数FPS游戏执行此操作,以及几乎任何需要快速反应的游戏)计划让您的客户端为游戏帐户丢失信息,那么UDP非常棒,其中TCP/IP更简单,将大大减少传输错误,更容易滞后.两者之间的主要区别在于UDP是"火上浇油",这意味着它无需检查消息是否实际到达目的地.
至于协议,你提到了http和ftp.我非常建议不要使用.当您在自定义端口上使用直接套接字通信时,您可以自由地制作自己的游戏协议以供游戏使用.只要它通过来回发送数据包来完成它的工作,其他一切都完全取决于你,应该是.毕竟,游戏协议需要很快,你不希望http中的所有这些额外的头垃圾堵塞你的网络传输,除非你真的需要它.
请记住:网络连接需要两个部分,即客户端和服务器.这意味着您要么为游戏设置了中央服务器,要么让一个玩家"主持"游戏(充当服务器,他将需要打开他的端口).其他玩家(所有玩家,在中央服务器设置中)连接到中央人,并通过他传递通信.这意味着您的游戏协议需要两个部分,即服务器端和客户端.大多数游戏中的客户端都是盲目的,因为它会发送有关用户的玩家信息,然后依靠服务器更新来告诉游戏中的其他所有内容.服务器应负责从所有客户端收集玩家信息,然后将该信息分发给其他人.这可以包括验证(大多数情况下)以防止在游戏中发生"非法"事件,但这取决于您.