![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
相关问题
我写了个PHP版的Socket服务程序
[PHP]
<?php
set_time_limit(10);
$ipaddr = "192.168.0.117";//gethostbyname("localhost");
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind( $socket, $ipaddr , 12345 );
$msgsocket = socket_listen ( $socket, 5 );
$msgsocket = socket_accept ( $socket );
$flag = true;
while($flag){
$buff = socket_read($msgsocket, 1024, PHP_NORMAL_READ) ;
if ( !empty( $buff ) )
{
print $buff;
$flag = false;
}
}
socket_close($socket);
print "Over Ok!";
?>
[/PHP]
还有个客户程序
[PHP]<?php
$ipaddr = "192.168.0.117";//gethostbyname("localhost");
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect ( $socket, $ipaddr ,12345 );
$in = "1234567890\nabcdefghijklmnopqrstuvwxyz\n";
socket_write($socket, $in, strlen($in));
socket_close($socket);
?>[/PHP]
在服务器程序中的socket_read($msgsocket, 1024, PHP_NORMAL_READ)如果使用PHP_NORMAL_READ,当单独启动服务程序没什么问题,但是一旦启动客户程序发送消息是就会内存泄漏,但是如果使用PHP_BINARY_READ就没问题.
请问是什么原因阿????
提问者:wzhu 08-18 14:02
答复

