Eğer müşteriler php kullanarak nasıl giden port numarası düzeltebilirim?

2 Cevap php

Xml dosya gönderme ve alma işlemek için php (prizler uzatma) kullanıyorum. Ben sunucu gelen bağlantıları bir dizi miktarda sahip olarak giden müşteriler port numarasını düzeltmek için muktedir istiyorum. Ben php script çalıştırmak her zaman yeni bir port numarasını oluşturur bulabilirsiniz. Ben bir istemci tarafı komut dosyası ana kadar bu: -



send_message('192.9.2.50','10220',$xmlCmd->asXML());

function send_message($ipaddr, $port, $msg)
{
  $fp = stream_socket_client("tcp://".$ipaddr.":".$port, $errno, $errstr);

  if (!$fp)
  {
    echo "ERR : $errno - $errstr";
  }
  else
  {
    fwrite($fp,$msg);
    $response = fread($fp,1024);
    // Make a SimpleXML object from the response
    $xml = new SimpleXMLElement($response);

    echo $xml->Channel->Air->Index;

    fclose($fp);
  }
}


Update:

Ben tekrar file_get_contents kullanarak deneyeceğim ama xml sadece müşteriden hiçbir cevap yani sunucuya geçmek gibiydi. Herkes stream_context_create seçenekleri ile bana yardımcı olabilir, ben bu ikisini birleştirmek gerekiyor ama sağ olsun gibi olamaz. Kod: -


    $opts = array('http' => 
      array( 'method'  => 'POST',
        'header'  => 'Content-type: text/xml;',
        'content' => $msg)                             
    );
//combine with these options

$opts = array('socket'=>array('bindto'=>"192.9.2.60:2800"));

2 Cevap

Ağ düzeyinde temel bir kontrol listesi yapın:

  • 192.9.2.60 bir IP sunucu üzerinde gerçek bir arabirim üzerinde mi?
  • Bunu etkileyen herhangi bir yönlendirme veya güvenlik duvarı kuralları var mı? Linux ip route xxxx src 192.9.2.60 olsun `` denemek'' ve iptables-L
  • Yüksek limanlarına bağlanmasını PHP ile müdahale diğer ayarlar (örn. SELinux) var mı?
  • Bir algılayıcı çalıştırın ve sunucu yanıt aslında ne diyor bakın