PHP套接字连接-Telnet拒绝连接

雅诺施·休布纳(Janosch Huebner)

我写了一个小类来管理PHP中的套接字连接:

    #/usr/bin/php

<?php

    define('PORT', 5000);
    define('IP', '127.0.0.1');


    /**
    * SocketManager
    */
    class SocketManager {

        private $sock = null;
        public $errorcode = null;
        public $errormsg = null;
        public $client = null;

        public function initSocket($onConnect) {
            echo "Init Socket\n";
            if (!($this->sock = socket_create(AF_INET, SOCK_STREAM, 0))) {
                $this->errorcode = socket_last_error();
                $thid->errormsg = socket_strerror($errorcode);
                return;
            }
            echo "Created Socket\n";
            if (!socket_bind($this->sock, IP , PORT)) {
                $this->errorcode = socket_last_error();
                $thid->errormsg = socket_strerror($errorcode);
                return;
            }
            echo "Bind Socket\n";
            if(!socket_listen($this->sock , 10)) {
                $this->errorcode = socket_last_error();
                $thid->errormsg = socket_strerror($errorcode);
                return;
            }
            echo "Listening on " . PORT . "\n";
            while (true) {
                echo ".";
                $this->client = socket_accept($this->sock);
                if(socket_getpeername($client , $address , $port)) {
                    if (!is_null($onConnect)) {
                        call_user_func_array($onConnect,array($client,$address,$port));
                    }
                }
            }
        }

        function __construct($onConnect) {
            $this->initSocket($onConnect);
        }
    }

    function handleConnection($client,$address,$port) {
        echo "User Connected: $address\n";
    }

    $socket = new SocketManager("handleConnection");
?>

启动此操作将导致以下输出:

#/usr/bin/php

Init Socket
Created Socket
Bind Socket
Listening on 5000
.

使用netstat进行检查可以打印出以下内容:

netstat -nap | grep LISTEN

tcp        0      0 127.0.0.1:5000          0.0.0.0:*               LISTEN      32301/php

而且nmap告诉我打开了端口5000:

nmap -p 5000本地主机

PORT     STATE SERVICE
5000/tcp open  upnp

但是,如果我尝试使用telnet进行连接,则仍然:

telnet SERVER_IP 5000我得到:

Trying SERVER_IP...
telnet: connect to address SERVER_IP: Connection refused
telnet: Unable to connect to remote host

我也尝试过更改iptables以在端口上接受,但是它没有用,但是可能是我做错了。

还有其他可以尝试的想法吗?

  • xCoder
沃伦

您必须更改:

define('IP', '127.0.0.1');

和:

define('IP', '0.0.0.0');

通过使用127.0.0.1,您将只能从服务器本身进行连接,因为它绑定到127.0.0.1,如图netstat所示。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ruby Telnet拒绝连接

来自分类Dev

套接字连接被拒绝:telnet:无法连接到远程主机:连接被拒绝

来自分类Dev

SSH和Telnet连接被拒绝

来自分类Dev

SSH和Telnet连接被拒绝

来自分类Dev

UNIX套接字连接被拒绝

来自分类Dev

python套接字拒绝连接

来自分类Dev

Arduino Uno + WifiShield:Telnet错误“连接被拒绝”

来自分类Dev

Telnet连接到Debian机器被拒绝

来自分类Dev

telnet 连接被拒绝,curl 有效

来自分类Dev

PHP套接字,无法连接-循环?

来自分类Dev

PHP和C ++之间的套接字连接

来自分类Dev

PHP多连接套接字(广播问题)

来自分类Dev

将 PHP 套接字连接到 SFML

来自分类Dev

TCP套接字拒绝连接错误#10061

来自分类Dev

Python SimpleXMLRPCServer:套接字错误,连接被拒绝

来自分类Dev

客户端套接字连接被拒绝

来自分类Dev

Telnet [无法连接到远程主机:连接被拒绝]

来自分类Dev

套接字连接超时

来自分类Dev

套接字TCP连接

来自分类Dev

OpenSSL:套接字:连接被拒绝连接:errno = 111

来自分类Dev

Android套接字连接被拒绝ETIMEDOUT(连接超时)

来自分类Dev

当连接到用PHP实现的Telnet /套接字服务器时,PuTTY显示奇怪的字符

来自分类Dev

PHP:无法从php-fpm连接到套接字

来自分类Dev

Android套接字创建失败,Telnet连接正常

来自分类Dev

C | 套接字不接受通过 telnet 连接

来自分类Dev

Telnet拒绝简单TCP服务器上的连接

来自分类Dev

使用IPv6地址拒绝telnet连接

来自分类Dev

Telnet到关闭的端口不回复连接被拒绝

来自分类Dev

PHP套接字脚本导致许多长期的CLOSE_WAIT套接字连接