PHP Yuva Hatalar (bağlantı reddetti ve böyle bir dosya ya da dizin yok)

1 Cevap php

Ben bir sunucu uygulaması (yayın) ve bir istemci (relayer) yazıyorum. Birkaç relayers, aynı zamanda yayıncı bağlanmak bilgi göndermek ve yayıncı eşleşen Relayer için iletiyi yönlendirmek olacaktır olabilir (-> yayın -> relayer73 ... örneğin relayer1, relayer2 relayer43 gönderir kim yayıncıya geri gönderir)

Ben bir telnet istemcisi ile test ettik gibi sunucu kısmı çalışıyor ve bu noktada sadece bir yankı sunucusu çalışır halde.

Ben AF_UNIX yuva kullanıyorum böylece relayer ve yayıncı hem de aynı sunucu üzerinde oturup, her iki dosya olsa farklı klasörlerde.

Ben Relayer için iki yaklaşım denedim ve hem de ilk socket_create kullanıyor, başarısız oldu:

public function __construct()
{  
    // where is the socket server?
    $this->_sHost = 'tcp://127.0.0.1';
    $this->_iPort = 11225;

    // open a client connection
    $this->_hSocket = socket_create(AF_UNIX, SOCK_STREAM, 0);

    echo 'Attempting to connect to '.$this->_sHost.' on port '.$this->_iPort .'...';
    $result = socket_connect($this->_hSocket, $this->_sHost, $this->_iPort);
    if ($result === false) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($this->_hSocket)) . "\n";
    } else {
    echo "OK.\n";

}

Bu ": socket_connect (): bağlanamıyor [2]: Uyarı 27. satırda relayer.class.php böyle bir dosya ya da dizin yok" döndürür ve (komut satırından ve çalışan) genellikle aynı zamanda bir segmentasyon hatası döndürür.

İkinci yaklaşım pfsockopen kullanıyor:

public function __construct()
{  
// where is the socket server?
$this->_sHost = 'tcp://127.0.0.1';
$this->_iPort = 11225;

// open a client connection  
$fp = pfsockopen ($this->_sHost, $this->_iPort, $errno, $errstr);
if (!$fp)
{
  $result = "Error: could not open socket connection";
}
else
{
  // get the welcome message
  fgets ($fp, 1024);
  // write the user string to the socket
  fputs ($fp, 'Message ' . __LINE__);
  // get the result
  $result .= fgets ($fp, 1024);
  // close the connection
  fputs ($fp, "END");
  fclose ($fp);
  // trim the result and remove the starting ?
  $result = trim($result);
  $result = substr($result, 2);
  // now print it to the browser
}

"on line 33 relayer.class.php içinde :/ / 127.0.0.1:11225 tcp bağlanamıyor (Bağlantı reddedildi): pfsockopen () Uyarı" sadece bir hata döndürür

Tüm testlerde farklı konak isimlerini, 127.0.0.1, localhost, tcp :/ / 127.0.0.1, 192.168.0.199, tcp :/ / 192.168.0.199, hiçbiri çalıştı ile denedim.

Bu konuda herhangi bir fikir?

1 Cevap

Görünüşe göre güvenlik duvarları bir özür zamanınızı boşa gelmiş, burada bir rol oynuyordu. Herkes bağlantı noktalarının açık olduğunu, bu sorunun kontrol içine çalışıyorsa, benim için hile yaptı