메뉴 건너뛰기

홈피디자인닷컴

(*.138.65.73) 조회 수 29088 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print 수정 삭제
http://cafe.naver.com/q69/82567

공유메모리를 이용한 채팅


 


공유메모리 함수이용(파일은 6개)


PHP 설치시 --enable-sysvsem 옵션이 지정되어야 사용 가능합니다


 


index.html ==> 프래임 파일
==============================================
<HTML>
<HEAD>
<TITLE>공유 메모리를 이용한 안개 채팅!!</TITLE>
<frameset rows="0%,70%,30%" frameborder=0 border=0>
<frame src="null.html" name="hidden">
<frame src="./message.html" name="up">
<frame src="./login.html" name="down">
</frameset>
</HTML>
==============================================

message.html ==> 안내문구 파일
==============================================
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<link rel="stylesheet" href="/chatting/style.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<p>&nbsp;</p>
<table width="300" border="0" cellspacing="1" cellpadding="2" align="center" bgcolor="#333333">
  <tr>
    <td bgcolor="#FFFFFF" class="mainText">
      <p>안냐세요.. 


        공유메모리를 이용한 체팅방p>
      <p>하단에 이름을 입력하시고 엔터,
        내용에 원하시는 메시지를 입력하시고 엔터를...</p>
    </td>
  </tr>
</table>
</body>
</html>
=========================================================

style.css스타일 시트 파일
=========================================================
.mainText {  font-family: "굴림", "굴림체"; font-size: 9pt; line-height: 150%; color: #333333}
=========================================================

위의 세개 파일은 프로그램이 들어 있지 않습니다. 단순 html파일들이죠..
담부터 잘 보시길

login.html ==> 대화명 입력 및 대화 입력 창
=========================================================
<?php

if ($action != 'login' || !$nicName) {
    echo("
<html>
<head><link rel='stylesheet' href='/chatting/style.css' type='text/css'></head>
<body class='mainText' leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>
<form name='form1' action='$PHP_SELF' method='post'>
<input type='hidden' name='action' value='login'>
대화명 입력 : <input type='text' name='nicName'>
</form>
</body>
</html>
    ");
    exit;
}

echo ("
<html>
<head>
<link rel='stylesheet' href='/chatting/style.css' type='text/css'>
<script Language='javascript'>
parent.up.location.replace('view.html?name=$nicName');
</script>
</head>
<body class='mainText' leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>
<form name='form1' action='putMessage.html' method='post' target='hidden'>
<input type='hidden' name='name' value='$nicName'>
내용 : <input type='text' size='30' name='comment'>
</form>
<script Language='javascript'>
document.form1.comment.focus();
</script>
</body>
</html>
");

$shm_key = 0x8888;
$semid = sem_get($shm_key,10);
sem_acquire($semid);
$shmid = shm_attach($shm_key,46084);

$message = "<font size='2' color='black'>[ 관리자 공지] {$nicName}님께서 입장하셨습니다.</font>";
shm_put_var ($shmid,1,$message); // 초기 공지를 저장

shm_detach ($shmid);
sem_release($semid);
?>
=====================================================

view.html ==> 대화내용이 나오는 페이지
=====================================================
<?php
##### 서버푸쉬를 위한 헤더 함수 호출
header("Content-type:multipart/mixed");


print("
    <html>
    <head><title>메일 전송 테스트</title>
    <link rel='stylesheet' href='/chatting/style.css' type='text/css'>
    </head>
    <body class='mainText' leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>
");
flush(stdout);

##### 공유 메모리 지정
$shm_key = 0x8888;

$chkTime = time();

$temp = "no";

while (1) {
    $shmid = shm_attach($shm_key,46084,0400);
    $message = shm_get_var ($shmid,1); // 공유메모리에 저장된 체팅 클래스를 가져옴
    shm_detach ($shmid);
    $chkmessage = substr($message,0,7);

    if ($temp != $message) {
        print ("
            $message
            <script Language='javascript'>
            self.scroll(0,100000000);
            </script>
        ");
        $temp = $message;
        $chkTime = time();
    }

    if ($chkTime < time() - 120) {
        echo ("
        <script Language='javascript'>
        alert('2분 동안 아무도 메시지 입력이 없어 대화방이 닫힙니다.');
        parent.location.replace('index.html');
        </script>
        ");
        break;
    }

    flush(stdout);
    usleep(100000);
}
shm_detach ($shmid);
?>
========================================================

putMessage.html => 메시지를 입력시키는 페이지
========================================================
<?php
##### 메시지를 공유메모리상의 클래스에 집어 넣는 프로그램
$shm_key = 0x8888;
$semid = sem_get($shm_key,10);
sem_acquire($semid);
$shmid = shm_attach($shm_key,46084);

$message = "<font size='2' color='black'>[".$name."] ".$comment."</font>";

shm_put_var($shmid,1,$message);
shm_detach ($shmid);
sem_release($semid);


echo ("
<script Language='javascript'>
parent.down.document.form1.comment.value='';
parent.down.document.form1.comment.focus();
</script>
");
exit;
?>
=======================================================


 



  1. PHP 로컬 검색 엔진 Orca Search

    Date2007.08.21 By원더우먼 Views33837
    Read More
  2. 리눅스 서버로 구축하는 웹 그룹웨어 솔루션

    Date2007.06.14 By플래셔 Views29912
    Read More
  3. RSS 리더기

    Date2007.04.25 By플래셔 Views32304
    Read More
  4. 트랙백 CGI 설계

    Date2007.04.25 By플래셔 Views53745
    Read More
  5. 트랙백 보내기 소스 (PHP)

    Date2007.04.25 By플래셔 Views34968
    Read More
  6. 간단한 RSS생성 소스 (PHP)

    Date2007.04.25 By플래셔 Views31874
    Read More
  7. 간단한 RSS 파서

    Date2007.04.25 By플래셔 Views28528
    Read More
  8. PHP multiple photo thumbnail generator

    Date2007.04.15 By플래셔 Views25862
    Read More
  9. PHP 소스 : 이미지 리사이즈, 섬네일

    Date2007.04.15 By플래셔 Views28760
    Read More
  10. PHP-LDAP search example

    Date2007.03.09 By플래셔 Views30203
    Read More
  11. Zend Studio 4.0 - PHP Development Environment

    Date2007.03.09 By플래셔 Views26910
    Read More
  12. PHP or ASP 로 DB 연결 방법, 파일 업로드 방법

    Date2007.03.09 By신세계 Views29710
    Read More
  13. PHP 세션에서 시작, 변수등록, 변수삭제, 부수기

    Date2007.02.28 By플래셔 Views37063
    Read More
  14. 공유메모리를 이용한 채팅

    Date2007.02.28 By플래셔 Views29088
    Read More
  15. /var/log/secure 로그를 이용한 IP Deny 자동 등록

    Date2007.02.28 By플래셔 Views28104
    Read More
  16. 멀티박스(검색,사전,로또,주식) 소스

    Date2007.02.28 By플래셔 Views27215
    Read More
  17. php한글체크를 위한 정규표현식

    Date2007.02.28 By플래셔 Views34370
    Read More
  18. strtotime() 함수의 문제 발견

    Date2007.02.28 By플래셔 Views26860
    Read More
  19. 공유메모리를 이용하여 순차적으로 값 추출하기

    Date2007.02.28 By플래셔 Views35819
    Read More
  20. 해당하는 날짜가 그달의 몇주째인지 계산

    Date2007.02.28 By플래셔 Views27389
    Read More
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 33 Next ›
/ 33

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5