PHP中通过socket实现聊天功能

1、命令行下执行。我的是MAC系统,所以环境变量是 /usr/bin/php

看了一天的socket,简单的实现了下,日后再补充完整。当然,BUG还有很多。

2、服务端代码

#!/usr/bin/php -q
<?
// 设置一些基本的变量
$host="127.0.0.1";
$port=1234;
// 设置超时时间
set_time_limit(0);
// 创建一个Socket
$socket=socket_create(AF_INET,SOCK_STREAM,0) or die("Could not create
socket\n");
//绑定Socket到端口
$result=socket_bind($socket,$host,$port) or die("Could not bind to
socket\n");
// 开始监听链接
$result=socket_listen($socket,3) or die("Could not set up socket
listener\n");
// accept incoming connections
// 另一个Socket来处理通信
$spawn=socket_accept($socket) or die("Could not accept incoming
connection\n");
//处理客户端输入并返回结果
$output = 1;
$input = 1;
do{
// 获得客户端的输入
$input=socket_read($spawn,1024) or die("Could not read input\n");
// 清空输入字符串
$input=trim($input);
print $input."\n";
while($output){
$output = trim(fgets(STDIN));
if($output == '.'){
break;
}
$ou.=$output."\n";
}
socket_write($spawn,$ou,strlen($ou)) or die("Could not write output\n");
continue;
}while($input)
/*
// 关闭sockets
socket_close($spawn);
socket_close($socket);
*/
?>
3、客户端代码

#!/usr/bin/php -q
<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection = socket_connect($socket,'127.0.0.1', 1234);
$input = 1;
$buffer = 1;
do{
while($input){
$input = trim(fgets(STDIN)); //获得键盘输入--一行
if($input == '.'){
break;
}
$in.=$input."\n";
}
// Write some test data to our socket
socket_write($socket, $in."\r\n");
if($buffer = socket_read($socket, 1024)){
print $buffer;
continue;
}
}while($buffer)
?>


4、效果

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值