php ·Î ¼ÒÄϼ¹ö ÇÏ´Â ¼Ò½ºÀä.. --> server.php
#!/usr/local/bin/php -q
<?
set_time_limit(0);
define("_IP", "111.222.333.12");
define("_PORT", "8888");
$sSock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($sSock, _IP, _PORT);
socket_listen($sSock);
pcntl_signal(SIGCHLD, SIG_IGN);
while($sock = socket_accept($sSock))
{
socket_getpeername($sock, $sockIp, $sockPort);
msg("client connect :
".$sockIp.":".$sockPort."\n");
$pid = pcntl_fork();
msg("fork\n");
if($pid == -1)
{
msg("fork failed\n");
exit;
// ÀÚ½Ä ÇÁ·Î¼¼½º À϶§
}if($pid == 0)
{
while(1)
{
$buf = socket_read($sock, 4096);
// Á¢¼Ó Á¾·á
if(!$buf)
{
msg("client connection broken :
".$sockIp.":".$sockPort."\n");
exit;
}
// ¸Þ½ÃÁö ¼ö½Å À̺¥Æ®
else
{
msg("recive data : ".$buf."\n");
$cmd = substr($buf, 0, 4);
switch($cmd)
{
// ½Ã°£Àü¼Û
case "time":
msg("client(".$sockPort.") time data
request\n");
socket_write($sock, date("Y/m/d H:i:s"));
break;
// Á¾·á
case "quit":
msg("client(".$sockPort.") quit
request\n");
socket_write($sock, "quit");
socket_close($sock);
exit;
break;
default:
msg("client(".$sockPort.") invalid command
$cmd\n");
break;
}
}
}
}
}
function msg($msg)
{
echo "SERVER >> ".$msg;
}
?>
ÀÌ°Ô Çغ¸´Ï µÇ±â´Â Çϴµ¥, Ŭ¶óÀ̾ðÆ®°¡ server.php ½ÇÇàµÇ°í ÀÖ´Â ¼¹ö¿¡ 8888 Æ÷Æ®·Î
ÃÖÃÊ Á¢¼ÓÇÏ°í ¾Æ¹«ÀÔ·Â ¾øÀÌ °¡¸¸È÷ ÀÖÀ¸¸é server.php ¿¡¼µµ ÀÚ½ÄÇÁ·Î¼¼½º°¡ ¹«ÇÑÁ¤
»ì¾ÆÀÖ´Â »óŶó´Â°Í°ú, $cmd ¿¡ ÇØ´çÇϴ Ŭ¶óÀ̾ðÆ®-> ¼¹ö. ·Î ¾î¶°ÇÑ ¸Þ½ÃÁö¸¦ ´øÁö°í
³ª¼ ¾Æ¹«°Íµµ ¾ÈÇÏ°í ÀÖÀ¸¸é ¸¶Âù°¡Áö·Î ¹«ÇÑÁ¤ ´ë±â »óŶó´Â ¹®Á¦°¡ Àִµ¥¿ä..
óÀ½Á¢¼Ó½Ã³ª Á¢¼ÓÈÄ, ¾î¶°ÇÑ ¸Þ½ÃÁö¸¦ ´øÁö·Î ³ª¼ ¾Æ¹«°Íµµ ¾ÈÇÏ°í 00ÃÊ ÀÖÀ¸¸é
Ŭ¶óÀ̾ðÆ® ¿¬°áÀÌ ÀÚµ¿À¸·Î ²÷¾îÁöµµ·Ï ÇÏ´Â°É Çغ¸·Á°í Çϴµ¥ µµ¹«Áö ¾ÈµÇ¼¿ä..
Ȥ. ÀÌ ºÎºÐ¿¡ ´ëÇØ Ã³¸®¹æ¹ýÀ» ¾Æ½Ã´ÂÁö Çؼ ¹®Àǵ帳´Ï´Ù..
|