我想为一个有趣的项目创建一个基于多人文本的游戏。我希望运行一个响应telnet/ssh到我的IP的python服务器。一旦玩家连接起来,他们就可以输入命令来做不同的事情。会有聊天,ascii图形,交易,和其他各种事情。
我需要一个高水平的网络库,这将允许我这样做。以下是我当前的问题:
到目前为止,我最大的问题是弄清楚我将如何使这个游戏安全,但运行在纯终端。我也想用诅咒来用ascii制作酷的菜单和地图。我怎样才能做到这一点?我是否能够操纵服务器端带有诅咒的文本并将其发送给客户端,或者客户端是否需要安装诅咒?
发布于 2015-10-25 00:07:41
网络
您可以使用asyncio:它是在Py3.4中构建的。它使用异步io实现某种类型的事件循环,并允许您在一个进程上拥有多个客户机。Yoy可能使用http://asyncssh.readthedocs.org/来实现ssh,它非常安全。
诅咒
每个终端(如linux控制台或xterm等第70或终端模拟器的真实终端)都有一些转义代码,用于绘制伪图形、透明屏幕、beep等,这些代码(终端功能)存储在termcap或terminfo中,合适的终端类型存储在$TERM env变量中。诅咒使用这个信息发送正确的代码到终端。因此,您可以在这里使用诅咒,但使用取决于您将拥有的客户端。
如果要在Python上编写客户端,则可以在客户端机器上安装诅咒,并在协议中使用“绘制菜单”之类的抽象。在这种情况下,客户端甚至可能是图形化的,因为绘图是客户的职责。
但是,如果要使用简单的ssh客户机(如Windows ),则需要获取客户端类型(http://asyncssh.readthedocs.org/en/latest/#getting-terminal-information),将其设置为术语变量,然后重定向诅咒输出(如果诅咒使用,则为stdout )
发布于 2015-10-25 00:19:35
考虑ssh和Unix域套接字绑定。
“除了创建端口转发隧道的用户之外,还可以保护Unix域套接字不被其他用户访问。通过扩展,到远程主机的连接也将受到保护,不受未经授权的访问。为了支持使用Unix域套接字进行端口转发,在SSH中添加了两个选项。”
来源:https://www.ll.mit.edu/mission/cybersec/corpora/Cybercorpora/README.sshhop
https://stackoverflow.com/questions/33324617
复制相似问题