메뉴 건너뛰기

홈피디자인닷컴

(*.138.65.73) 조회 수 28076 추천 수 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. 간단한 RSS생성 소스 (PHP)

    Date2007.04.25 By플래셔 Views31002
    Read More
  2. 간단한 RSS 파서

    Date2007.04.25 By플래셔 Views27837
    Read More
  3. PHP multiple photo thumbnail generator

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

    Date2007.04.15 By플래셔 Views27950
    Read More
  5. PHP-LDAP search example

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

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

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

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

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

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

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

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

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

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

    Date2007.02.28 By플래셔 Views26332
    Read More
  16. pcre 로 간단히 단어만 추출하기

    Date2007.02.28 By플래셔 Views15719
    Read More
  17. 이미지 워터마크 구현

    Date2007.02.28 By플래셔 Views14147
    Read More
  18. 특수문자 없애는 정규표현식

    Date2007.02.28 By플래셔 Views23272
    Read More
  19. 한글줄바꾸기 또는 utf-8 wordwrap

    Date2007.02.28 By플래셔 Views15724
    Read More
  20. PHP 함수 : 한국어 형태소 분석기/분석 모듈

    Date2007.02.28 By플래셔 Views16918
    Read More
Board Pagination ‹ Prev 1 ... 6 7 8 9 10 11 12 13 14 15 ... 42 Next ›
/ 42

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5