PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP基础 >> 基础文章 >> 

PHP 通过tcp协议连接服务器方法

PHP 通过tcp协议连接服务器方法

来源:phperz.com  作者:phperz.com  发布时间:2011-10-23
PHP 通过tcp协议连接远程服务器简单例子 PHP可以通过socket 的一些方法连接TCP server,就我知道的有两种方法: 1. 用fstockopen() 函数连接 直接上例子: $host=10.50.75.20; $port = 4700; $timeout = 30; // open a client connection try{ $fp = fsockopen ($host,

PHP 通过tcp协议连接远程服务器简单例子

PHP可以通过socket 的一些方法连接TCP server,就我知道的有两种方法:

1. 用fstockopen() 函数连接

直接上例子:

        $host="10.50.75.20";

        $port = 4700;

        $timeout = 30;


// open a client connection

try{

$fp = fsockopen ($host, $port, $errno, $errstr,$timeout);

}

catch (Exception $e) {

echo "Caught exception: ",$e->getMessage(),"\n";

exit;

}

if (!$fp)

{

$result = "Error: could not open socket connection";

}

else

{

fwrite ($fp, $message);

// get the result

//while (!feof($fp)) {

//$result .= fgets($fp, 128);

//}

//$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);

}


2. 用socket_Connect() 函数连接


例子:

$sendStr=“client send messages”;

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)

     or die("Unable to create socket\n");

   //socket_set_nonblock($socket)

     //or die("Unable to set nonblock on socket\n");

   $time = time();

   while (!@socket_connect($socket, $host, $port))

   {

     $err = socket_last_error($socket);

     if ($err == 115 || $err == 114)

     {

       if ((time() - $time) >= $timeout)

       {

         socket_close($socket);

         die("Connection timed out.\n");

       }

       sleep(1);

       continue;

     }

     die(socket_strerror($err) . "\n");

   }

 socket_send($socket,$sendStr,strlen($sendStr),0); 

 socket_close($socket);

 


延伸阅读:
HTTP协议状态码表示的意思
HTTP协议头信息详解
《Robots.txt 协议标准》介绍
百度开放协议概述及格式
Tags: php   tcp   协议   服务器  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号