爱飞 发表于 2015-2-4 00:19:38

PHP编程:PHP SOCKET 手艺研讨

PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算 一加一等于几,然后在浏览器输出,不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但是不得不再给你泼点冷水,您还是菜鸟一个。   明天试着写一个 PHP 与 C 言语经由过程socket通信的法式,看过PHP手册,发明有好几种体例可以创立socket 客户端. 1、经由过程 fsockopen() 创立socket毗连,然后用 用fputs() 发送动静,用 fgets() 吸收动静。
2、经由过程 socket_create() 创立 socket 毗连,然后用 socket_send() or socket_write() 发送动静,用 socket_recv() or socket_read() 发送动静。
    很奇异,我在手册上看到了如许一段话"本扩大模块是实行性的。该模块的行动,包含其函数的称号和其它任何干于此模块的文档能够会在没有告诉的情形下随 PHP 今后的宣布而改动。咱们提示您在利用本扩大模块的同时自担风险。" 看来 php4.0 socket通信还不是完整不乱。
明天我写的客户端要与办事端做两次通信,我用下面这个办法都写了一个客户端法式,发明当仅仅就一次通信的时分,也就是PHP客户端发送一次动静,然后吸收前往动静,就封闭毗连。这两种办法都能准确疾速的完成功效,但当作两次通信时,却有分明的不同,第一种办法第一次通信出格快就停止了,这个我可以经由过程办事真个输入看出来,然而第二次通信要等上好几分钟才干停止,我试了好几回都如许,我不太清晰我的法式哪里失足了,仍是这个体例毗连就是有成绩,然而第二种办法做这两次通信却很快,准确!完成的十分的。
最初我依据 第二种情形写了一个 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 = "<<<";
var $response;
var $debug = 1;
function socket($hostname,$port){
$address = gethostbyname($hostname);
$this->socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
   $result =socket_connect($this->socket,$address,$port);
if($this->debug == 1){
   if ($result < 0) {
      echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "<br>";
   } else{
      echo "connect OK.<br>";
   }
}   
}
function sendmsg($msg){
socket_write($this->socket,$msg,strlen($msg));
$result= socket_read($this->socket,100);
$this->response = $result;
if($this->debug == 1){
      printf("<font color=#CCCCCC>%s $msg</fon><br>",$this->sendflag);
      printf("<font color=blue>%s $result</font><br>",$this->recvflag);
}
      return $result;
}
function close(){
socket_close($this->socket);
}
}
我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单。

海妖 发表于 2015-2-4 11:45:28

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

再见西城 发表于 2015-2-9 22:25:59

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

变相怪杰 发表于 2015-2-16 07:22:01

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

乐观 发表于 2015-2-19 08:03:32

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

不帅 发表于 2015-3-4 04:38:12

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

分手快乐 发表于 2015-3-6 18:56:50

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

再现理想 发表于 2015-3-10 00:23:24

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

小妖女 发表于 2015-3-14 22:45:55

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

若相依 发表于 2015-3-21 14:47:02

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

金色的骷髅 发表于 2015-4-10 19:55:58

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

活着的死人 发表于 2015-4-12 07:07:10

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

简单生活 发表于 2015-4-14 18:06:10

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

山那边是海 发表于 2015-4-21 20:13:21

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

飘飘悠悠 发表于 2015-4-26 05:11:24

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

若天明 发表于 2015-5-2 02:21:08

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

透明 发表于 2015-5-6 17:11:10

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

灵魂腐蚀 发表于 2015-5-12 08:19:16

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

柔情似水 发表于 2015-6-28 20:37:03

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

老尸 发表于 2015-7-2 17:57:34

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
页: [1]
查看完整版本: PHP编程:PHP SOCKET 手艺研讨