메뉴 건너뛰기

홈피디자인닷컴

(*.138.65.73) 조회 수 28105 추천 수 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 or ASP 로 DB 연결 방법, 파일 업로드 방법

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

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

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

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

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

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

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

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

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

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

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

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

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

    Date2007.02.28 By플래셔 Views16938
    Read More
  15. PHP 동영상 강좌

    Date2007.02.12 By플래셔 Views17177
    Read More
  16. 게시판이나 방명록에 태그 쓰는 것 막기

    Date2007.02.11 By미궁 Views14357
    Read More
  17. PHP-MSSQL RPM 모듈

    Date2007.02.05 By플래셔 Views17655
    Read More
  18. Linux의 아파치+PHP 와 NT의 MS_SQL 연동

    Date2007.02.03 By플래셔 Views13206
    Read More
  19. PHP로 소켓 서버 작성하기

    Date2007.01.18 By플래셔 Views21227
    Read More
  20. PHP를 Eclipse로 개발하기 - 설치&설정

    Date2007.01.15 By원더우먼 Views28030
    Read More
Board Pagination ‹ Prev 1 ... 59 60 61 62 63 64 65 66 67 68 ... 95 Next ›
/ 95

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5