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

PHP 结合实例认识什么是Socket

php 搞代码 3年前 (2022-01-22) 19次浏览 已收录 0个评论
文章目录[隐藏]

一、简介

请结合下图 Socket 抽象层的位置来理解。Socket 是应用层和 TCP/IP 协议族进行通信的中间软件抽象层,是一组接口。在设计模式中,就是一个门面模式,它把复杂的实现封装在接口后面,而只提供了一组简单的接口给用户调用。在普遍的程序语言中,这些接口一般是 create、bind、listen、accept、write、read、close 和 connect 等等。

二、实例

1. 效果图

2. 代码

服务端:Server.php

<?phpset_time_limit(0);   // 去掉时间限制ob_implicit_flush(); // 开启强制刷新// 1. 创建Socket$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);// 2. 绑定端口和IPsocket_bind($socket, '127.0.0.1', 11279);// 3. 端口监听socket_listen($socket);echo 'Server is listening!' . PHP_EOL;// 4. accept阻塞进程$connect = socket_accept($socket); // 直到有连接进入,accept才会返回echo 'Client [' . $connect . '] is accessing...' . PHP_EOL;// 5. 交互socket_write($connect, 'Welcome, visitor! Now you can send message to the server.' . PHP_EOL);while ($connect) {	// 获取请求	$request = socket_read($connect, 1024);	echo 'Client ['. $connect .'] message: ' . $request;	// 关闭连接	if($request == "bye" . PHP_EOL){		socket_shutdown($connect);		break;	}	// 发送响应	$response = 'Your sended message: ' . $request;	socket_write($connect, $response);}// 6. 销毁Socketsocket_close($socket);

客户端:client.php

<?php// 1. 创建Socket$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);// 2. 建立连接$result = socket_connect($socket, '127.0.0.1', 11279);if($result === false){	socket_close($socket);	die('Socket connect failed: ' . socket_strerror(socket_last_error($socket)));}// 3. 交互while($result){        // 获取响应    $response = socket_read($socket, 1024);    echo $response;    // 发送请求    $request = fgets(STDIN);    socket_write($socket, $request, 1024);    // 关闭连接    if($request == "bye&quo<i>·本2文来源gaodai$ma#com搞$代*码网2</i><strong>搞gaodaima代码</strong>t; . PHP_EOL){		socket_shutdown($socket);    	break;    }}// 4.销毁Socketsocket_close($socket);

以上就是PHP 结合实例认识什么是Socket的详细内容,更多请关注搞代码gaodaima其它相关文章!


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

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

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

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