오늘은 대한입니다.
sun's longitude:299 48 47.85 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/delete.php:소스보기  
알파문서
자주 잊어먹거나, 메모해 둘 필요성이 있는 팁이나 문서, 기타 등등
[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
 ★ 글 지우기 항목입니다. 한번 더 생각하시고 결정하십시오.!!!
제목 212 : [php] stream_socket_state
 이름  산이 [홈]http://linuxchannel.net/
스트림 소켓 상태 알아보기


## stream socket resource state, such as fsockopen(), stream_socket_client()
##
## return value
## -1 : $handle is empty or is not resource or unknown
## 0 : $handle is not ESTABLISHED
## 1 : $handle is ESTABLISHED
## misc
## @file_exists('/proc/net/tcp') ? define('_PROCTCP','/proc/net/tcp') : '';
##
function stream_socket_state(&$handle, $inode=NULL)
{
global $__proctcpfp; // self fp of /proc/net/tcp

if(!defined('_PROCTCP')) return -1;
if(!$handle || !@is_resource($handle)) return -1;
if(!is_resource($__proctcpfp) && !$__proctcpfp = fopen(_PROCTCP,'r')) return -1;

if(!$inode)
{
$fstat = @fstat($handle);
$inode = $fstat['ino'];
if($inode === FALSE) return -1;
}

rewind($__proctcpfp);
@fgets($__proctcpfp); // firest line to delete
while(!feof($__proctcpfp)) // fscanf() best speed
{
if(fscanf($__proctcpfp,"%d: %s %s %X %s %s %s %d %d %d %x %s %64s\n",
$null,$null,$null,$st,$null,$null,$null,$null,$null,$ino,$null,$null,$null) < 13)
continue;
if($inode == $ino)
{
$st = hexdec($st); // 1 == ESTABLISHED
break;
}
}
//fclose($__proctcpfp);

return ($st===1) ? 1 : FALSE;
}


## example

@file_exists('/proc/net/tcp') ? define('_PROCTCP','/proc/net/tcp') : '';
$fp = fsockopen(....);
$state = stream_socket_state($fp);
echo $state;
fclose($fp);
2009년 06월 11일 09:37:59 목(오전)  from 114.111.62.248
0
암호: 공용 보안 SSL 서버가 준비되기 전까지는 off 합니다

apache lighttpd linuxchannel.net 
Copyright 1997-2026. linuxchannel.net. All rights reserved.

Page loading: 0.01(server) + (network) + (browser) seconds