加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP实现Socket服务器的代码

发布时间:2020-12-13 05:23:32 所属栏目:PHP教程 来源:网络整理
导读:?php ob_implicit_flush(); set_time_limit(0); $address="192.40.7.93";//换成你自己的地址 $port=10000; if(($socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP))==false) echo"错误(socket_create):".socket_strerror(socket_last_error())." "; if(so

<?php
ob_implicit_flush();
set_time_limit(0); $address="192.40.7.93";//换成你自己的地址
$port=10000; if(($socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP))==false)
echo"错误(socket_create):".socket_strerror(socket_last_error())."
"; if(socket_bind($socket,$address,$port)==false)
echo"错误(socket_bind):".socket_strerror(socket_last_error())."
"; if(socket_listen($socket)==false)
echo"错误(socket_listen):".socket_strerror(socket_last_error())."
"; /
Afterthesocketsockethasbeencreatedusingsocket_create()andboundtoanamewithsocket_bind(),
itmaybetoldtolistenforincomingconnectionsonsocket.
/ while(true){
if(($msgSocket=socket_accept($socket))==false){
echo"错误(socket_accept):".socket_strerror(socket_last_error())."
";
break;
} /
thisfunctionwillacceptincomingconnectionsonthatsocket.
Onceasuccessfulconnectionismade,anewsocketresourceisreturned,whichmaybeusedforcommunication.
Iftherearemultipleconnectionsqueuedonthesocket,thefirstwillbeused.
Iftherearenopendingconnections,socket_accept()willblockuntilaconnectionbecomespresent.
Ifsockethasbeenmadenon-blockingusingsocket_set_blocking()orsocket_set_nonblock(),FALSEwillbereturned.
/ $msg="Welcome!
";
//socket_write($msg,$msg,strlen($msg));
$command=""; while(true){
if(($buf=socket_read($msgSocket,2048,PHP_BINARY_READ))==false){
echo"错误(socket_read):".socket_strerror(socket_last_error())."
";
break2;
} /
Thefunctionsocket_read()readsfromthesocketresourcesocketcreatedbythesocket_create()orsocket_accept()functions.
Themaximumnumberofbytesreadisspecifiedbythelengthparameter.
Otherwiseyoucanuser,n,ortoendreading(dependingonthetypeparameter,seebelow).
/ /
if(!$buf=trim($buf))
continue;//???? if($buf=="quit")
break; if($buf=="shutdown"){
socket_close($msgSocket);
break2;
} $tallBack="Yousay:$bufn";
socket_write($msgSocket,$tallBack,strlen($tallBack));
/ if(ord($buf)!=13)
$command.=$buf;
else{
$command1="YouSay:$commandrn";
socket_write($msgSocket,$command1,strlen($command1));
echo"Usertyped:".$command."
";
$command="";
}
}
socket_close($msgSocket);
} socket_close($socket);
?> 然后打开CMD,输入:telnet192.40.7.9310000,自己体验去吧!
<IMG style="CURSOR: pointer" onclick=javascript:window.open(this.src); src="http:https://files.52php.cn/upload/20080403190845579.gif" onload="javascript:if(this.width>510){this.resized=true;this.style.width=510;}">
注,要把:php_sockets.dll 打开

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读