PHP Socket 学习记录client service
2017-05-07 00:00
429 查看
一、环境
开启php_sockets扩展二、client代码
tip:地址要换成服务端的保持一致set_time_limit(0); $host = "192.168.186.128"; $port = 3046; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)or die("Could not create socket\n"); $connection = socket_connect($socket, $host, $port) or die("Could not connet server\n"); do{ echo("input what you want to say to the server:\n"); $text = trim(fgets(STDIN)); if($text === 'quit'){ break; } socket_write($socket,$text,strlen($text)) or die("Write failed\n"); $result=socket_read($socket, 1024); if(!$result){ echo "connect failed\n"; break; }else{ echo("Response was:" . $result . "\n"); } }while(true); socket_close($socket);
三、service代码
set_time_limit(0); $ip = '192.168.186.128'; $port = 3046; $handle = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if (!$handle) { die('create socket fail:' . socket_last_error() . '-' . socket_strerror(socket_last_error())); } if (!socket_set_block($handle)) { die('set socket fail:' . socket_strerror(socket_last_error())); } if (!socket_bind($handle, $ip, $port)) { die('bind socket fail:' . socket_strerror(socket_last_error())); } if (!socket_listen($handle, SOMAXCONN)) { die('create listen fail:' . socket_strerror(socket_last_error())); } echo "OK\nBinding the socket on $ip:$port ... "; echo "OK\nNow ready to accept connections.\nListening on the socket ... \n"; do { $msg_handle = socket_accept($handle) or die(socket_strerror(socket_last_error())); do { echo "read ... \n"; $row = socket_read($msg_handle, 8192); if(!$row || $row == 'bye'){ break; } echo "content:$row\n"; $result = "you send content is :$row"; socket_write($msg_handle, $result, strlen($result)) or die(socket_strerror(socket_last_error())); } while (true); socket_close($msg_handle); } while (true); socket_close($handle);
缺点不能多线程,一次一个连接,回头再家多线程吧
相关文章推荐
- php学习记录1
- 决定从今天开始学习php,并将学习的过程记录到本博客上
- php 学习记录 formdata 文件上传 ajax html5
- php手册学习记录(入门指引处理表单)
- php 学习记录 ajax responseXML Text
- php学习记录(2)
- php学习记录 ajax 状态码
- php学习记录 jsonp
- php Socket表单提交学习一下
- php过程 uc学习 [纯记录]
- c写php扩展传参学习记录
- php学习记录2:php语法
- php学习记录 iframe 文件上传
- 我的php学习笔记(三十八) PHP通过mail()或Socket发从邮件
- PHP 学习使用记录
- php学习记录1环境的配置
- 学习记录:php显示错误信息
- php-fpm 配置完善学习记录
- php学习记录
- php手册学习记录(入门指引)