본 시스템은 UDP-다중 포트 방식과 VoIP 기법을 응용하여 제작한 실시간 화상 강의 시스템 이다. 학생은 클라이언트 프로그램으로, 교수는 서버 프로그램으로 접속하여 서로 실시간 으로 영상 및 음성 대화를 주고 받을 수 있으며, 그 외에 채팅이 가능하고 교수는 체벌 기능과 경고 기능을 통해 학생에게 퇴장이나 잠을 깰 것을 종용할 수 있다. 교수가 화면에서 옐로카드를 꺼내 들면 자동으로 시스템이 화면을 인식하여 해당학생에게 경고를 보내고, 레드 카드를 꺼내 들면 해당학생은 자동으로 시스템에서 퇴장된다. 잠 깨우기 기능을 이용하면 해당 학생의 어플리케이션에서는 굉음과 함께 경고메시지가 발생하여 잠이 깨도록 한다. 또한 학생은 질문하기 기능을 통해 교수에게 강의 도중 질문을 할 수 있고 교수는 1:1 메시지 형식으로 학생으로부터 질문을 받는다. 본 시스템에서 학생은 최대 여섯 명까지 접속이 가능하며, 테스트 결과 그 이상의 학생이 접속해도 충분히 영상의 끊김 및 노이즈 현상 없이 원활하게 동작한다(UDP+multi port 방식)
본 시스템은 UDP-multi port 방식을 채택하여 실시간으로 영상을 주고 받는 식으로 설계되었다. TCP/IP 대신에 논블럭킹 방식인 UDP를 채택하여 영상의 QoS 를 높이고 다중 접속시에도 영상이 부드럽게 송/수신 되도록 구현하였다.
본 시스템은 영상중계와 동시에 영상 송/수신 포트 이외에 6002 포트를 이용하여 음성 패킷을 실시간으로 주고받는다. MFC 자체 라이브러리를 이용하여 구현하였으며, 최대한 음성의 QoS를 보장하고 영상과의 싱크로를 맞추기 위해 역시 UDP 방식으로 설계.
서버와 클라이언트 창은 위와같고...
휴 이거 구현하느라 일주일동안 새벽 네시전에 잔적이 없다 ;;
죽는줄 알았다
멀티포트로 짰고 쓰레드를 네 개를 할당..
조금 무식하지만 속도면에서는 대여섯명이 들어와도 끊기지 않는다.
역대 텀중에서 가장 고생많이 했고 가장 기억에 남는다
음성도 당연히 마이크있으면 실시간으로 된다.
서버 모델만 대여섯번쯤짰다
tcp, udp, csocket 이용등.....꽤 만족스런 결과물이다.
'컴퓨터 공학 자료(학부) > Network' 카테고리의 다른 글
IPv4에서 사용자가 보내기 좋은 순수 UDP data의 최대 크기 (0) | 2010.11.07 |
---|---|
초소형 웹브라우저 만들기 (2) | 2010.10.12 |
최소형 웹서버 만들기 (1) | 2010.10.12 |
opencv를 이용한 화상통신 (0) | 2010.09.15 |