我有一个项目要做,它是这样的:
当您打开telnet控制台并telnet到我的服务器时,PHP应该会响应:“您好,您叫什么名字?”
然后输入你的名字,诸如此类。我如何在PHP中做到这一点?这有可能吗?
发布于 2011-11-03 07:21:27
请参阅http://php.net/manual/en/book.sockets.php
这是一个很好的入门教程。http://devzone.zend.com/article/1086
谷歌在这里也是你的朋友:http://www.google.ca/search?q=php+socket+server
发布于 2011-11-03 07:39:27
Actual TELNET可能有点难正确;有许多控制序列用于影响终端显示其内容的方式。
如果您只是想编写一个人们可以通过远程登录使用的服务,那么最好使用现有的远程登录服务器(对于简单的远程登录,Ubuntu有几个可用的包:inetutils-telnetd、telnetd;对于加密的远程登录:telnetd-ssl;对于Kerberos认证的远程登录:heimdal-servers、krb5-telnetd。)来提供TELNET功能,并将您的PHP程序设置为您希望所有用户登录时的登录shell。(有关登录shell的信息,请参见passwd(5)。)
如果您希望自己执行所有套接字操作,那么您将需要使用BSD套接字支持;create a socket、bind a server name to the socket、listen on the socket,当有新的连接进入时,还需要使用fork a new process to handle the new client和accept the new connection。
在连接了客户端的新流程之后,可以使用标准的读写操作向客户端发送和接收数据。如果您真的想支持完整的TELNET规范,则需要一些巧妙的编程。如果您不介意无法访问高级终端特性(如readline(3)、ncurses(3)或slang提供的特性),那么您可能需要在打开第八位的情况下删除字符,以便从客户端删除远程登录控制字符。(我没有尝试过这一点,因为当我想在主机之间建立干净的、未加密的、未经身份验证的连接时,我总是使用netcat工具。)
https://stackoverflow.com/questions/7988500
复制相似问题