技术研究_php基础_脚本之家

前些天试着写叁个 PHP 与 C
语言由此socket通信的顺序,看过PHP手册,开掘存几许种方法能够创设socket
顾客端.

1、通过 fsockopen(卡塔尔国 建设构造socket连接,然后用 用fputs 选用消息。

2、通过 socket_create() 建立 socket 连接,然后用 socket_send
发送音讯,用 socket_recv 发送消息。

很想取得,作者在手册上观望了这么一段话”本扩张模块是实验性的。该模块的一言一行,包罗其函数的称谓以致任何任何有关此模块的文档恐怕会在未有布告的意况下随
PHP 以往的揭橥而改换。大家提醒您在动用本扩张模块的同一时间自担风险。” 看来
php4.0 socket通信还不是一丝一毫牢固。

后日本人写的客商端要与服务端做四回通信,作者用地方这么些主意都写了一个顾客端程序,发掘当独有就一次通信的时候,也正是PHP顾客端发送一遍新闻,然后接收再次回到音信,就关闭连接。那三种方法都能精确快速的兑现效果与利益,但作为三回通信时,却有显著的差别,第一种艺术第2回通信特别快就玉陨香消了,这么些笔者得以通过服务端的输出看出来,可是第2回通信要等上有些分钟本领终止,我试了一些次都如此,笔者不太明了本人的顺序哪里出错了,依旧这一个方法连接正是有标题,不过第三种办法做这两回通信却异常的快,正确!实现的百般的。

谈起底本人依据 第三种处境写了一个 class

////////////////////////////// File Description
//////////////////////////////////////////// Class Name : socket//
Version : V1.0// Functional Outline : create socket,and send message to
server// Revision history : 2004/12/15 First version created// Current :
2004/12/15 Liu
Yongsheng//////////////////////////////////////////////////////////////////////////////////////////class
socket{var $socket; //socket 句柄var $sendflag = “>>>”;var
$recvflag = “<<socket =
socket_create(AF_INET,SOCK_STREAM,SOL_TCP); $result =
socket_connect($this->socket,$address,$port); if{ if { echo
“socket_connect() failed.nReason: ” . socket_strerror . “
“; } else{ echo “connect OK.
“; } } }function sendmsg{ socket_write($this->socket,$msg,strlen;
$result = socket_read; $this->response = $result; if{ printf(“%s
$msg
“,$this->sendflag); printf(“%s $result
“,$this->recvflag); } return $result;}function close(){
socket_close;}

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注