• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP实现Socket服务器的代码_php技巧

php 搞代码 4年前 (2022-01-26) 21次浏览 已收录 0个评论

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()).”
“;

/*
After the socket socket has been created using socket_create() and bound to a name with socket_bind(),
it may be told to listen for incoming connections on socket.
*/

while(true){
if(($msgSocket = socket_accept($socket)) == false){
echo “错误(socket_accept):”.socket_strerror(socket_last_error()).”
“;
break;
}

/*
this function will accept incoming connections on that socket.
Once a successful connection is made, a new socket resource is returned, which may be used for communication.
If there are multiple connections queued on the/本2文来源[email protected]搞@^&代*@码2网搞gaodaima代码 socket, the first will be used.
If there are no pending connections, socket_accept() will block until a connection becomes present.
If socket has been made non-blocking using socket_set_blocking() or socket_set_nonblock(), FALSE will be returned.
*/

$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()).”
“;
break 2;
}

/*
The function socket_read() reads from the socket resource socket created by the socket_create() or socket_accept() functions.
The maximum number of bytes read is specified by the length parameter.
Otherwise you can use \r, \n, or \0 to end reading (depending on the type parameter, see below).
*/

/*
if(!$buf = trim($buf))
continue; // ????

if($buf == “quit”)
break;

if($buf == “shutdown”){
socket_close($msgSocket);
break 2;
}

$tallBack = “You say:$buf\n”;
socket_write($msgSocket,$tallBack,strlen($tallBack));
*/

if(ord($buf) != 13)
$command .= $buf;
else{
$command1 = “You Say:$command\r\n”;
socket_write($msgSocket,$command1,strlen($command1));
echo “User typed:”.$command.”
“;
$command = “”;
}
}
socket_close($msgSocket);
}

socket_close($socket);
?>

然后打开CMD,输入:telnet 192.40.7.93 10000,自己体验去吧!
510){this.resized=true;this.style.width=510;}”>
注,要把:php_sockets.dll 打开


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP实现Socket服务器的代码_php技巧

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址