상기한 바와 같은 목적을 달성하기 위하여 본 발명의 일 측면에 따르면, 오프라인 상태의 메신저에서 복수의 로컬 네트워크 사용자 단말기들간의 메시지 전달 방법으로서, 메신저 프로그램 실행 시, 로컬 네트워크에 연결된 노드들로 전송할 브로드캐스팅 패킷을 생성하는 단계(a)-상기 브로드캐스팅 패킷은 상기 로컬 네트워크 내에서 브로드캐스팅이 이루어질 수 있도록 하는 미리 설정된 목적지 주소, 해당 사용자 단말기의 주소 정보 및 로컬 네트워크에서의 명칭 정보 중 적어도 하나를 포함함-; 상기 생성된 브로드캐스팅 패킷을 로컬 네트워크의 다른 사용자 단말기들로 브로드캐스팅하는 단계(b)-상기 브로드캐스팅 패킷을 수신한 로컬 네트워크의 사용자 단말기들 중 미리 설정된 적어도 하나의 사용자 단말기의 메신저는 적어도 하나의 타 네트워크의 미리 설정된 사용자 단말기에 상기 브로드캐스팅 패킷 발생 정보를 전송하며, 상기 타 네트워크의 미리 설정된 사용자 단말기는 해당 네트워크의 사용자 단말기들에 수신한 브로드캐스팅 패킷 발생 정보에 상응하는 브로드캐스팅 패킷을 전송함-; 상기 로컬 네트워크의 사용자 단말기들 및 상기 적어도 하나의 타 네트워크의 사용자 단말기들로부터 브로드캐스팅에 대한 응답 패킷을 수신하는 단계(c)-상기 응답 패킷은 적어도 응답 패킷을 전송하는 사용자 단말기의 주소 정보 및 로컬 네트워크에서의 명칭 정보를 포함함-; 상기 수신한 응답 패킷을 전송한 로컬 네트워크 또는 타 로컬 네트워크의 다른 사용자 단말기를 대화 상대로 등록하는 단계(d); 상기 대화 상대로 등록된 로컬 네트워크의 다른 사용자 단말기들의 주소 정보를 이용하여 인스턴트 메시지 송수신을 수행하는 단계(d)를 포함하는 오프라인 상태의 메신저에서 복수의 로컬 네트워크 사용자 단말기들간의 메시지 전달 방법이 제공된다.
또한 본 발명은 로컬 네트워크의 다른 사용자 단말기 또는 타 로컬 네트워크의 브로드캐스팅 정보를 알리는 로컬 네트워크의 사용자 단말기로부터 상기 브로드캐스팅 패킷을 수신할 경우, 해당 사용자 단말기로 주소 정보 및 로컬 네트워크에서의 명칭 정보를 포함하는 상기 응답 패킷을 생성하여 전송하는 단계를 더 포함한다.
상기 브로드캐스팅 패킷은 UDP 브로드캐스팅 패킷인 것이 바람직하며, 상기 단계(a)의 브로드캐스팅 패킷의 식별자와 상기 단계(b)에서 타 네트워크의 미리 설정된 사용자 단말기의 메신저가 생성하는 브로드캐스팅 패킷의 식별자는 상이한 것이 바람직하다.
상기 로컬 네트워크에서의 명칭 정보는 운영 체제에 등록된 해당 사용자 단말기의 로컬 네트워크에서의 워크 그룹 및 명칭 정보인 것이 바람직하다.
상기 주소 정보는 해당 사용자 단말기의 아이피 주소 및 MAC 주소 중 적어도 하나를 포함할 수 있다.
상기 응답 패킷은 상기 브로드캐스팅 패킷을 전송한 사용자 단말기의 주소를 목적지 주소로 가지는 UDP 패킷인 것이 바람직하다.
한편, 본 발명은 사용자의 요청 또는 미리 설정된 이벤트 발생으로 인해 메신저 사용자의 상태가 변경되는지 여부를 모니터링하는 단계; 및 상태가 변경될 경 우, 상태 변경을 알리는 브로드캐스팅 패킷을 생성하여 로컬 네트워크의 사용자 단말기들에 전송하는 단계를 더 포함하되, 상기 로컬 네트워크의 미리 설정된 적어도 하나의 단말기의 메신저는 적어도 하나의 타 네트워크의 미리 설정된 단말기에 상태 변경을 알리는 브로드캐스팅 패킷 발생 정보를 전달하고, 상기 타 네트워크의 미리 설정된 단말기는 수신한 브로드캐스팅 패킷 발생 정보에 상응하는 브로드캐스팅 패킷을 타 네트워크의 사용자 단말기들에 전송하는 것이 바람직하다.
상기 단계(e)는, 전송할 메시지의 종류가 텍스트 전송 메시지인지 또는 파일 전송 메시지인지 여부를 판단하는 단계; 전송할 메시지가 텍스트 전송 메시지일 경우, 대화 상대방의 단말기 주소를 목적지 주소로 하는 UDP 메시지 패킷을 생성하여 대화 상대방의 단말기로 전송하는 단계; 및 전송할 메시지가 파일 전송 메시지일 경우, 대화 상대방의 단말기 주소를 목적지 주소로 하는 TCP 메시지 패킷을 생성하여 대화 상대방의 단말기로 전송하는 단계를 포함할 수 있다.
한편, 본 발명의 다른 측면에 따르면, 메신저 오프라인 상태에서 복수의 로컬 네트워크에 연결된 사용자 단말기들간의 인스턴트 메시지 통신을 위한 명령어들의 조합이 유형적으로 구현되어 있으며 전자 정보 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체로서, 메신저 프로그램일 실행될 경우, 사용자 단말기의 주소 정보 및 로컬 네트워크에서의 명칭 정보를 추출하는 사용자 정보 추출 모듈; 상기 사용자 정보 추출 모듈에서 추출된 주소 정보 및 로컬 네트워크에서의 명칭 정보를 포함하는 브로드캐스팅 패킷 메시지를 생성하고, 생성된 패킷 메시지를 로컬 네트워크의 노드들에 브로드캐스팅 방식으로 전송하는 브로드캐스팅 메시지 생성 모듈-상기 브로드캐스팅 패킷은 상기 로컬 네트워크 내에서 브로드캐스팅이 이루어질 수 있도록 하는 미리 설정된 목적지 주소를 포함함-; 상기 브로드캐스팅 패킷 메시지를 수신한 로컬 네트워크의 다른 사용자 단말기 또는 타 로컬 네트워크의 사용자 단말기들로부터 응답 패킷을 수신하고, 응답 패킷에 포함된 정보를 이용하여 로컬 네트워크에 연결된 적어도 하나의 다른 사용자 단말기를 대화 상대로 등록하는 네트워크 사용자 정보 등록 모듈-상기 응답 패킷은 적어도 상기 브로드캐스팅 메시지를 수신한 사용자 단말기의 주소 정보 및 네트워크에서의 명칭 정보를 포함함-; 상기 네트워크 사용자 정보 등록 모듈에 의해 등록된 로컬 네트워크 또는 타 로컬 네트워크의 사용자 단말기들간의 메시지 송수신을 제어하는 메시지 송수신 모듈; 및 설정에 따라 활성화 또는 비활성화되며, 로컬 네트워크의 사용자 단말기로부터 브로드캐스팅 패킷을 수신할 경우, 브로드캐스팅 패킷 발생 정보를 적어도 하나의 타 네트워크의 미리 설정된 단말기에 전송하며, 타 네트워크의 단말기로부터 타 네트워크에서의 브로드캐스팅 발생 정보를 수신할 경우, 수신한 정보에 상응하는 브로드캐스팅 패킷을 생성하여 로컬 네트워크의 사용자 단말기들에 전송하는 타 네트워크 연동 모듈을 포함하는 것을 특징으로 하는 프로그램을 기록한 기록 매체가 제공된다.
삭제
이하에서는 첨부된 도면을 참조하여 본 발명에 의한 오프라인 상태의 메신저에서 복수의 로컬 네트워크 단말기들간의 메시지 전달 방법 및 이를 위한 기록 매체 의 바람직한 실시예를 상세히 설명한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 오프라인 상태의 메신저에서 복수의 로컬 네트워크 단말기들간의 메시지 전달 방법 및 이를 위한 기록 매체가 적용되는 시스템의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명의 바람직한 일 실시예에 따른 시스템은 제1 로컬 네트워크(108)를 통해 연결되어 있는 복수의 사용자 단말기들(100, 102), 제2 로컬 네트워크(112)를 통해 연결되어 있는 복수의 사용자 단말기들(104, 106) 및 외부 네트워크(110)와 연결되어 있는 메신저 시스템(114)을 포함할 수 있다.
로컬 네트워크들에 연결된 사용자 단말기들(100, 102, 104, 106)에는 본 발명에 의한 메신저 프로그램이 설치된다. 본 발명에 의한 메신저 프로그램은 사용자가 로그인을 한 온라인 모드에서는 일반 메신저와 같이 메신저에 대화 상대로 등록된 사용자들간의 메시지 송수신을 처리하는 기능을 한다. 또한, 본 발명에 의한 메신저 프로그램은 메신저에 로그인하지 않은 상태이거나 외부 네트워크와의 연결 차단으로 인해 메신저 시스템(108)에 로그인할 수 없는 상태에서도 같은 로컬 네트워크에 연결되어 있는 사용자들간의 메신저 통신 및 미리 설정된 다른 네트워크에 연결된 사용자들간의 메신저 통신이 가능하도록 하는 기능을 한다. 도 1의 경우, 본 발명에 의한 메신저를 이용하면, 메신저 시스템에 로그인하지 않더라도 제1 로컬 네트워크의 사용자 단말기들(100, 102) 및 제2 로컬 네트워크의 사용자 단말기들(104, 106)간의 메신저 통신이 가능하다. 도 1에는 오프라인 상태에서 통신이 가능한 로컬 네트워크가 2개인 경우가 도시되어 있으나, 로컬 네트워크의 수가 이에 한정되지 않는다는 점은 당업자에게 있어 자명할 것이다.
도 1에는 제1 로컬 네트워크(108)와 제2 로컬 네트워크(112)가 외부 네트워 크(110)를 통해 연결되어 있는 경우가 도시되어 있으나 제2 로컬 네트워크는 외부 네트워크가 아닌 전용선 등을 통해 제1 로컬 네트워크와 연결될 수도 있을 것이다.
종래의 메신저의 경우, 메신저에 의한 메시지 전달은 메신저 시스템에 의해 제어되었다. 따라서, 메신저 시스템에 로그인하지 않거나 외부 네트워크와의 연결 차단으로 인해 메신저 시스템에 로그인할 수 없는 상태에서는 메신저에 의한 메시지 송수신이 불가능하였다. 특히, 외부 네트워크와의 연결이 차단되더라도 로컬 네트워크는 연결되어 있으므로 로컬 단말기들간에는 메시지 송수신이 이루어질 수 있음에도 불구하고 메신저 프로그램이 메신저 시스템을 통해서만 메시지를 중계하므로 메시지 송수신이 이루어질 수 없었다.
본 발명에 의하면, 메신저를 설치하고 있는 특정 로컬 네트워크의 단말기들 및 특정 로컬 네트워크와 패킷 교환이 가능한 다른 네트워크의 단말기들은 설치된 메신저의 동작에 의해, 메신저 시스템을 경유하지 않고 메신저 통신이 가능한 단말기들을 찾아내며, 단말기에 설치된 메신저는 찾아낸 단말기들을 통신이 가능한 노드로 등록한다. 본 발명에 의한 메신저를 설치하고 있는 로컬 네트워크의 단말기 및 타 로컬 네트워크 단말기를 찾아내는 방법에 대해서는 별도의 도면을 통해 후에 상세히 설명하기로 한다.
따라서, 본 발명에 의하면, 메신저를 설치한 사용자 단말기들(100, 102, 104, 106)은 같은 네트워크 또는 해당 네트워크와 통신이 가능한 타 네트워크와의 사용자 단말기들과의 통신을 통해 메시지 송수신이 가능한 단말기들을 찾아내고, 메신저 시스템의 중계를 거치지 않고 로컬 네트워크를 통해 직접 통신을 한다.
사용자 단말기는 일반적인 PC는 물론 PDA, 노트북, 휴대폰 등과 같이 네트워크를 통해 통신이 가능하며 메신저 프로그램의 구동이 가능한 디지털 데이터 처리 장치를 모두 포함할 수 있을 것이다.
도 1에서, 외부 네트워크는 인터넷망, 사설망과 같은 유선 네트워크는 물론 이동통신망, 무선 인테넷망과 같은 무선 네트워크를 모두 포함할 수 있을 것이다. 또한 로컬 네트워크는 LAN(Local Area Network)과 같이 사무실 등에서 사용되는 구내 통신망을 포함할 수 있을 것이며, 로컬 네트워크의 노드들은 전용선을 통해 연결되거나, AP와 무선 랜카드 등을 이용하여 무선으로 접속될 수도 있을 것이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 오프라인 상태의 메신저에서 복수의 로컬 네트워크의 단말기들간의 메시지 전달 방법에 대한 전체적인 흐름을 도시한 순서도이다.
도 2는 도 1에서 제1 로컬 네트워크에 속한 사용자 단말기1 및 사용자 단말기2와 제2 로컬 네트워크에 속한 사용자 단말기3을 예로 하여 복수의 로컬 네트워크의 단말기들 사이의 메시지 송수신에 대해 도시하고 있으나, 이는 설명의 편의를 위한 것이며, 도 2의 동작이 복수의 로컬 네트워크에 속한 복수의 사용자 단말기들 사이에서 수행될 수 있다는 것은 당업자에게 있어 자명할 것이다.
도 2를 참조하면, 우선 사용자 단말기1의 사용자는 사용자 단말기1에 설치된 메신저 프로그램을 실행한다(단계 200).
통상적으로, 메신저 프로그램이 실행되면, 사용자의 로그인 요청 또는 로그인 자동 설정에 따라 메신저 시스템과의 로그인 작업을 수행한다. 이와 같은 로그 인 작업에 의해 메신저 시스템과 접속하지 않으면 다른 사용자들과의 메신저 통신이 불가능하다. 그러나, 본 발명에 의한 메신저는 로그인 여부에 관계 없이 로컬 네트워크에 연결되어 있는 단말기들에 메신저 프로그램이 실행되었다는 메시지를 전송한다(단계 202). 따라서, 사용자 단말기1의 메신저 프로그램이 실행될 경우, 사용자 단말기1은 제1 로컬 네트워크의 모든 사용자 단말기들에 프로그램이 실행되었다는 메시지를 전송한다.
본 발명의 일 실시예에 따르면, 제1 로컬 네트워크에 연결되어 있는 사용자 단말기들에 전송하는 프로그램 실행 메시지는 브로드캐스팅 형태로 로컬 네트워크에 접속한 모든 사용자 단말기들에 전송된다. 브로드 캐스팅은 특정 주소의 노드로 패킷을 전송하는 유니캐스팅과는 달리 특정 네트워크에 접속된 모든 노드들에 패킷을 전달하는 전송 방식이다. 브로드캐스팅은 다양한 방식으로 구현될 수 있으며, 바람직하게는 UDP(User Datagram Protocol) 브로드캐스팅이 이용될 수 있을 것이다. 프로그램 실행 정보 메시지가 브로드캐스팅 방식으로 전달하는 것에 본 발명이 제한되는 것은 아니며, 다른 전송 방식, 예를 들어 멀티캐스팅이 이용될 수도 있을 것이다.
상기 프로그램 실행 메시지에는 프로그램을 실행한 사용자 단말기1의 주소 정보 및 로컬 네트워크에서의 명칭 정보가 포함되어 있다. 로컬 네트워크에서의 명칭은 각 사용자가 운영 체제를 통해 편집할 수 있으며, 일반적으로 사용자의 이름으로 지정된다.
도 2에서, 사용자 단말기2는 사용자 단말기1과 같이 제1 로컬 네트워크에 접 속되어 있는 단말기로서, 사용자 단말기1의 메신저가 전송한 브로드캐스팅 형태의 프로그램 실행 메시지를 수신한다. 사용자 단말기2에 본 발명에 의한 메신저가 설치되어 있을 경우, 사용자 단말기1의 프로그램 실행 메시지를 인식할 수 있으며, 이에 대한 응답 정보를 전송한다(단계 204). 전술한 바와 같이, 프로그램 실행 정보 메시지는 사용자 단말기2뿐만 아니라 브로드캐스팅 형태로 제1 네트워크에 연결된 모든 단말기들에 전송되며, 설명의 편의를 위해 도 2에는 그 중 하나의 단말기인 사용자 단말기2가 브로드캐스팅 메시지를 수신하는 경우가 도시되어 있다.
또한, 응답 정보의 전송과 동시에 사용자 단말기1의 사용자를 메신저의 대화 상대 리스트로 등록한다. 사용자 단말기2의 메신저는 프로그램 실행 메시지에 포함된 사용자 단말기1의 주소 정보 및 로컬 네트워크에서의 명칭 정보를 이용하여 사용자 단말기1의 사용자를 대화 상대 리스트에 등록한다.
상기 프로그램 실행 메시지에 대한 응답 메시지에는 사용자 단말기2의 주소 정보 및 사용자 단말기2의 로컬 네트워크에서의 명칭 정보가 포함되어 있다.
상기 응답 메시지는 상기 프로그램 실행 메시지에 포함된 사용자 단말기1의 주소로 전송되는 메시지이며, 프로그램 실행 메시지와 같이 브로드캐스팅 형태로 로컬 네트워크의 모든 사용자 단말기들에 전송되지 않고 유니캐스팅 형태로 전송되는 것이 바람직하다.
사용자 단말기1이 전송한 브로드캐스팅 메시지가 제1 로컬 네트워크에 포함된 모든 사용자 단말기들에 전송되는데, 이중 하나의 사용자 단말기는 제2 로컬 네트워크에 제1 로컬 네트워크에서의 브로드캐스팅 정보를 전달하는 역할을 한다. 본 발명에 의한 메신저는 타 네트워크의 특정 단말기로 브로드캐스팅 정보를 자동적으로 전달하는 기능을 제공하며, 타 네트워크로 브로드캐스팅 정보를 전달하는 기능은 사용자의 설정에 의해 활성화되거나 비활성화될 수 있다.
본 발명의 바람직한 실시예에 따르면, 본 발명에 의한 메신저를 설치하고 있는 로컬 네트워크의 복수의 단말기들 중 적어도 하나의 단말기의 메신저에 대해 상술한 타 네트워크에 브로드캐스팅 정보를 전달하는 기능이 활성화되도록 한다.
즉, 본 발명에서는 동일한 로컬 네트워크의 단말기들 뿐만 아니라 타 로컬 네트워크의 단말기들과도 대화 상대 등록 및 메시지 송수신이 가능하도록 메신저 설정을 통해 로컬 네트워크의 적어도 하나의 단말기가 해당 로컬 네트워크에서의 브로드캐스팅 발생 정보를 타 로컬 네트워크들에 전달하도록 한다.
도 2는 제1 로컬 네트워크에서는 사용자 단말기2가 제2 로컬 네트워크에서는 사용자 단말기3이 이와 같은 타 네트워크의 브로드캐스팅 발생 정보를 송수신하는 경우를 예로 하여 전체적인 동작이 도시되어 있다.
사용자 단말기2의 메신저가 제2 로컬 네트워크에 브로드캐스팅 발생 정보를 전달하도록 설정된 경우, 사용자 단말기2는 사용자 단말기1로부터 브로드캐스팅 메시지를 수신한 후, 브로드캐스팅 발생을 알리는 메시지를 제2 로컬 네트워크의 사용자 단말기3으로 전송한다(단계 206). 제2 로컬 네트워크의 사용자 단말기3으로 제1 로컬 네트워크에서의 브로드캐스팅 발생 정보를 전달하기 위해, 사용자 단말기3의 주소 정보는 사용자 단말기2의 메신저에 미리 설정되어 있다.
제2 로컬 네트워크의 사용자 단말기3은 사용자 단말기2로부터 전송된 브로드 캐스팅 발생 정보를 수신한 후, 사용자 단말기1의 프로그램 실행 정보를 제2 로컬 네트워크에 접속된 모든 사용자 단말기들에 브로드캐스팅한다(단계 208).
도 11은 복수의 네트워크에서 특정 네트워크에서의 브로드캐스팅 발생 정보를 다른 네트워크에 전달하는 개념도를 도시한 도면이다.
도 11에 도시된 바와 같이, 제1 로컬 네트워크의 a2 단말기에서 메신저 프로그램 실행 이벤트가 발생하면, 메신저의 브로드캐스팅 동작에 의해 프로그램 실행 정보는 제1 로컬 네트워크의 단말기들에 브로드캐스팅된다.
제1 로컬 네트워크에서 a 단말기의 메신저가 제1 로컬네트워크의 브로드캐스팅 정보를 제2 로컬 네트워크에 전달하도록 설정된 경우, a 단말기는 a2 단말기의 프로그램 실행 정보를 제2 로컬 네트워크의 b 단말기에 전송한다.
제2 로컬 네트워크의 b 단말기는 전달된 프로그램 실행 정보를 제2 로컬 네트워크의 단말기들에 브로드캐스팅하여 제2 로컬 네트워크의 단말기들도 프로그램을 실행한 a 단말기의 네트워크에서의 명칭 정보 및 주소 정보를 확인할 수 있게 된다.
도 2 및 도 11에서는 로컬 네트워크에서의 브로드캐스팅 발생 정보를 하나의 사용자 단말기가 전송하는 경우를 도시하고 있으나, 복수의 사용자 단말기가 브로드캐스팅 정보를 전달하고 수신하는 역할을 하도록 설정될 수도 있을 것이다.
도 2 및 도 11을 참조하여 설명한 절차에 의해 사용자 단말기1의 프로그램 실행 정보를 수신한 제1 로컬 네트워크 및 제2 로컬 네트워크의 사용자 단말기들은 사용자 단말기 2와 같이 브로드캐스팅에 대한 응답 정보를 전송하며, 사용자 단말 기1의 사용자를 대화 상대로 등록한다. 사용자 단말기1의 메신저는 제1 및 제2 로컬 네트워크의 단말기들이 전송하는 응답 정보를 분석하여 제1 및 제2 로컬 네트워크의 단말기들의 사용자를 대화 상대로 등록한다(210).
단계 210에서의 대화 상대 등록 절차에 제1 및 제2 로컬 네트워크의 단말기들을 대화 상대로 등록하였으므로, 사용자 단말기1의 사용자는 대화 상대 등록 시 설정된 주소 정보를 이용하여 대화를 하고자 하는 사용자와 메시지 송수신을 수행할 수 있다(단계 212).
이상과 같은 동작으로 인해, 사용자가 로그인을 하지 않거나 외부 네트워크의 메신저 시스템에 접속하지 않더라도 로컬 네트워크 또는 해당 로컬 네트워크와 패킷 송수신이 가능한 타 네트워크 사용자들간의 메신저 통신이 가능하다.
도 3은 본 발명의 바람직한 일 실시예에 따른 메신저의 모듈 구성을 도시한 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 메신저는 온라인 메시지 처리 모듈(300) 및 오프라인 메시지 처리 모듈(302)을 포함할 수 있으며, 온라인 메시지 처리 모듈(300)은 로그인 관리 모듈(310), 메시지 송수신 모듈(312) 및 상태 정보 관리 모듈(304)을 포함하고, 오프라인 메시지 처리 모듈(302)은 사용자 정보 추출 모듈(350), 브로드캐스팅 메시지 생성 모듈(352), 브로드캐스팅 메시지 응답 모듈(354), 네트워크 사용자 정보 등록 모듈(356), 상태 정보 관리 모듈(358), 메시지 송수신 모듈(360) 및 타 네트워크 연동 모듈(362)을 포함할 수 있다.
도 3에서, 온라인 메시지 처리 모듈(300)의 로그인 관리 모듈(310)은 사용자 의 로그인 요청을 처리하는 기능을 한다. 로그인 관리 모듈(310)은 사용자가 외부 네트워크의 메신저 시스템에 접속하기 위한 로그인 요청이 있을 경우, 사용자의 아이디 및 비밀번호 정보를 포함하는 로그인 요청 정보를 메신저 시스템의 로그인 관리 서버(일반적으로, 게이트웨이 모니터링 서버)에 전송하며, 로그인 관리 서버로부터의 로그인 요청에 대한 응답 정보를 수신한다. 정상적인 로그인 요청을 하였을 경우, 메신저 목록에 있는 대화 상대들에 대한 상태 정보를 수신하며, 상태 정보를 포함하는 대화 상대 목록이 메신저에 디스플레이된다.
메시지 송수신 모듈(312)은 로그인이 완료된 후 사용자가 보내는 인스턴트 메시지를 메신저 시스템의 메시지 큐 서버에 전송하고, 메신저 시스템의 인스턴트 메시지 서버를 통해 전송되는 메시지를 수신하여 디스플레이하는 기능을 한다. 온라인 메시지 처리 모듈(300)에서의 메시지 송수신 모듈(312)은 메시지 큐 서버와 같이 메신저 시스템의 특정 서버에 인스턴트 메시지를 전송하며, 인스턴트 메시지 서버가 전송된 메시지를 지정된 대화 상대방에게 중계한다.
상태 정보 관리 모듈(314)은 메신저 사용자의 상태 정보에 변경이 있을 경우 상태 변경 정보를 전송하는 기능을 한다. 예를 들어, 사용자가 미리 설정된 시간 이상 컴퓨터를 사용하지 않아 자리비움 상태로 변경될 경우, 상태 정보 관리 모듈(314)은 자리비움으로 변경되었다는 정보를 전송한다. 상태 정보 관리 모듈(314)은 상태 정보를 메신저 시스템의 미리 설정된 서버로 전송하며, 서버는 상태가 변경된 사용자를 대화 상대로 등록하고 있는 사용자들에게 상태 변경 정보를 전송한다.
오프라인 메시지 처리 모듈(302)에서, 사용자 정보 추출 모듈(350)은 메신저 를 설치한 단말기의 네트워크에서의 명칭 정보 및 주소 정보를 추출하는 기능을 한다. 단말기의 네트워크 명칭 정보는 로컬 네트워크에서 사용자 단말기가 속해있는 워크 그룹 및 해당 사용자 단말기에 대해 네트워크 운영자 또는 사용자가 입력한 명칭 정보를 포함한다. 사용자 정보 추출 모듈(350)은 사용자 단말기에 설치된 운영체제와의 통신을 통해 사용자 단말기의 네트워크 명칭 정보를 추출하는데, 예를 들어, 윈도우 운영체제의 경우, netapi21.dll에 포함된 netwkstagetinfo() 함수를 이용하여 네트워크 명칭 정보를 추출할 수 있을 것이다.
또한, 사용자 정보 추출 모듈(350)은 사용자 단말기의 주소 정보를 추출하는데, 본 발명의 바람직한 실시예에 따르면, 주소 정보는 사용자 단말기의 아이피 주소 정보뿐만 아니라 MAC주소도 포함하는 것이 바람직하다. IP를 공유하는 로컬 네트워크 또는 기타 특정 종류의 로컬 네트워크에서는 아이피 주소 만으로 단말기가 식별될 수 없는 경우가 발생하는 바, 이러한 경우를 대비해 MAC 주소도 주소 정보에 포함시키는 것이 바람직하다. MAC 주소는, 일반적인 윈도우 운영체제의 경우, netbios() 함수 등을 이용하여 알아낼 수 있을 것이다.
브로드캐스팅 메시지 생성 모듈(352)은 사용자가 메신저 프로그램을 실행할 경우, 프로그램이 실행되었다는 정보를 포함하는 브로드캐스팅 메시지를 생성하여 로컬 네트워크에 연결된 사용자 단말기들에 전송하는 기능을 한다. 브로드 캐스팅 메시지 생성 모듈(352)은 상기 사용자 정보 추출 모듈(350)에서 추출한 사용자 정보를 포함하는 브로드캐스팅 메시지를 생성한다.
본 발명의 바람직한 일 실시예에 따르면, 브로드캐스팅 메시지 생성 모듈 (352)은 UDP 브로드캐스팅 패킷을 생성하여 로컬 네트워크의 사용자 단말기들에 전송한다. UDP 브로드캐스팅은 제한된 브로드캐스팅, 네트-지정 브로드캐스팅, 서브넷-지정 브로드캐스팅, 모든 서브넷-지정 브로드캐스팅 등을 포함하며, 이와 같은 종류의 브로드캐스팅이 로컬 네트워크의 형태에 따라 다양하게 사용될 수 있을 것이다.
본 발명의 바람직한 실시예에 따르면, 제한된 브로드캐스팅 방법이 이용되며, 제한된 브로드캐스팅은 UDP 브로드캐스팅 패킷의 주소를 255.255.255.255로 지정하는 형태의 브로드캐스팅으로, 포워딩을 허락하지 않으며 제한된 로컬 네트워크로 UDP 패킷을 전송하는 브로드캐스팅 방법이다.
예를 들어, 유닉스 시스템의 경우 sun % ping 255.255.255.255 /usr/etc/ping: unknown host 255.255.255.255와 명령어 조합을 통해 제한된 브로드캐스팅을 수행할 수 있을 것이다.
브로드캐스팅 메시지 응답 모듈(354)은 같은 로컬 네트워크의 다른 사용자 단말기로부터 메신저 프로그램이 실행되었다는 브로드캐스팅 메시지를 수신할 경우, 이에 대한 응답 메시지를 생성하여 해당 사용자 단말기에 전송하는 기능을 한다. 전술한 바와 같이, 브로드캐스팅 메시지 응답 모듈(354)에서 생성하는 응답 메시지에도 응답 메시지를 전송하는 사용자 단말기의 네트워크 명칭 정보 및 주소 정보가 포함된다. 상기 브로드캐스팅 응답 메시지는 UDP 패킷인 것이 바람직하나, TCP 패킷으로 전송될 수도 있다는 것은 당업자에게 있어 자명할 것이다.
네트워크 사용자 정보 등록 모듈(356)은 로컬 네트워크의 다른 사용자 단말 기 또는 타 로컬 네트워크의 사용자 단말기로부터 UDP 브로드캐스팅 메시지 또는 브로드캐스팅에 대한 응답 메시지를 수신할 경우, 상술한 메시지들에 포함된 사용자 단말기 정보를 이용하여 해당 사용자 단말기의 사용자를 대화 상대로 등록하는 기능을 한다. 일반적인 메신저의 경우, 사용자가 대화 상대로 등록하려는 상대방의 메일 주소 또는 아이디 등을 포함하는 대화 상대 등록 요청 정보를 메신저 시스템으로 전송하고, 메신저 시스템이 이를 해당 사용자에게 전송하며, 해당 사용자가 요청 정보를 수락하는 방식으로 대화 상대 등록이 이루어지나, 본 발명의 메신저의 오프라인 모드에서는 다른 사용자 단말기의 정보를 모르는 상태에서 브로드캐스팅으로 패킷을 전송하고 이에 대한 응답 정보를 수신하는 방식으로 대화 상대 등록이 이루어진다.
상태 정보 관리 모듈(358)은 자리비움 상태와 같이 오프라인 상태에서 메신저를 사용하는 사용자의 상태가 변경될 경우 상태 변경 정보를 로컬 네트워크의 다른 사용자 단말기들 또는 오프라인 상태에서 통신이 가능한 타 로컬 네트워크의 사용자 단말기들에 전송하며, 다른 사용자의 상태 변경 정보를 등록하는 기능을 한다. 본 발명의 일 실시예에 따르면, 상태 정보 관리 모듈(358)은 상태 정보를 포함하는 UDP 브로드캐스팅 메시지를 이용하여 상태 정보를 로컬 네트워크의 다른 사용자 단말기들에 전송할 수 있다. 이와 같이, 상태 정보 변경에 대한 브로드캐스팅 메시지가 로컬 네트워크의 다른 사용자 단말기들에 전송될 경우, 해당 로컬 네트워크의 사용자 단말기들 중 적어도 하나는 상태 정보 브로드캐스팅 메시지 발생 정보를 연계된 타 네트워크의 미리 설정된 단말기로 전송하는 동작이 프로그램 실행 브 로드캐스팅 메시지와 같이 이루어진다. 본 발명의 다른 실시예에 따르면, 대화 상대로 등록된 각 사용자 단말기의 주소로 UDP 또는 TCP 패킷을 전송함으로써 상태 변경 정보를 전달할 수도 있을 것이다.
메시지 송수신 모듈(360)은 메신저 오프라인 상태에서 로컬 네트워크에 연결된 사용자 단말기들간의 인스턴트 메시지 송수신을 제어하는 기능을 한다. 온라인 상태에서의 메시지 송수신과는 달리, 오프라인 메시지 처리 모듈의 메시지 송수신 모듈(360)은 특정 대화 상대의 사용자 단말기로 직접 인스턴트 메시지를 전송한다.
타 네트워크 연동 모듈(362)은 메신저가 설치된 사용자 단말기가 연결되어 있는 로컬 네트워크 이외의 다른 로컬 네트워크의 미리 설정된 사용자 단말기에 로컬 네트워크에서의 브로드캐스팅 메시지 발생 정보를 전달하고, 다른 로컬 네트워크에서의 브로드캐스팅 발생 정보를 수신할 경우, 수신한 브로드캐스팅 발생 정보를 로컬 네트워크에 다시 브로드캐스팅하는 기능을 수행한다.
전술한 바와 같이, 타 로컬 네트워크에 로컬 네트워크에서의 브로드캐스팅 발생 정보를 전달하고 타 로컬 네트워크로부터 브로드캐스팅 정보를 수신하는 기능은 사용자에 의해 활성화되거나 비활성화될 수 있으며, 네트워크 관리자가 하나 또는 그 이상의 단말기가 이러한 기능을 수행하도록 메신저의 모드를 설정하는 것이 바람직하다.
타 네트워크 연동 모듈(362)은 로컬 네트워크에서 브로드캐스팅 메시지가 발생할 경우 타 네트워크의 미리 설정된 단말기에 브로드캐스팅 발생 정보를 전달하는데, 이 때 타 네트워크의 단말기의 주소는 사용자에 의해 수동으로 입력될 수 있 으며, 입력된 주소로 브로드캐스팅 발생 정보가 전송된다.
또한, 브로드캐스팅 발생 정보 메시지는 유니캐스팅 형태로 타 네트워크의 단말기로 전송되는 것이 바람직하며, 메시지는 TCP 형태의 메시지, UDP 형태의 메시지 및 이와 다른 형태의 메시지를 모두 포함할 수 있을 것이다.
타 네트워크 연동 모듈(362)이 타 네트워크로부터 브로드캐스팅 발생 정보를 수신하여 로컬 네트워크에 브로드캐스팅 할 경우, 이때 브로드캐스팅 패킷에는 로컬 네트워크가 아닌 타 네트워크에서의 브로드캐스팅 발생 정보를 중계하는 브로드캐스팅 패킷이라는 식별자가 포함되는 것이 바람직하다.
예를 들어, 타 네트워크와의 연동을 담당하는 단말기가 로컬 네트워크에 2개가 존재하고, 이중 하나의 단말기가 타 로컬 네트워크로부터 브로드캐스팅 발생 정보 메시지를 수신하여 브로드캐스팅을 할 경우, 다른 하나의 단말기가 타 네트워크에서의 브로드캐스팅을 전달하기위한 브로드캐스팅이라는 점을 인식할 수 없다면 다시 타 네트워크로 로컬 네트워크의 브로드캐스팅 발생 정보가 전달되는 무한 반복 현상이 일어날 수 있는 바, 이와 같은 경우를 방지하기 위해 타 네트워크에서의 브로드캐스팅 발생 정보를 중계하기 위한 브로드캐스팅이라는 식별자가 필요하다.
도 5는 본 발명의 바람직한 일 실시예에 따른 본 발명에 의한 메신저에 의해 로컬 네트워크 및 다른 로컬 네트워크의 사용자 단말기들간에 메신저 사용자를 등록하는 과정을 도시한 순서도이다.
도 5 역시 제1 로컬 네트워크의 사용자 단말기1과 사용자 단말기2 및 제2 로컬 네트워크의 사용자 단말기3 사이의 통신 과정을 통해 메신저 사용자를 등록하는 경우를 도시하고 있으나, 도 5에 절차는 제1 로컬 네트워크 및 제2 로컬 네트워크에 연결된 모든 사용자 단말기들에 대해 수행될 수 있을 것이다.
도 5에서, 사용자 단말기1은 아직 메신저 프로그램을 수행하지 않은 사용자의 단말기이며, 사용자 단말기2는 제1 로컬 네트워크에 연결되어 있으며 메신저 프로그램을 이미 실행하고 있는 사용자의 단말기이고 사용자 단말기3은 제2 로컬 네트워크에 연결되어 있고 메신저 프로그램을 실행하고 있는 사용자 단말기이다. 또한, 사용자 단말기2 및 사용자 단말기3의 메신저는 브로드캐스팅 발생 정보를 타 네트워크에 전달하고 수신하는 기능이 활성화되도록 설정되어 있다.
도 5를 참조하면, 우선 사용자 단말기1의 사용자는 본 발명에 의한 메신저 프로그램을 실행한다(단계 500). 메신저 프로그램이 실행되면, 사용자의 메신저 시스템과의 로그인 여부와는 관계 없이 메신저는 사용자 단말기1의 제1 로컬 네트워크에서의 명칭 정보를 추출한다(단계 502). 전술한 바와 같이, 운영체제와의 통신 또는 특정한 명령어 입력을 통해 사용자 단말기의 네트워크에서의 명칭 정보를 추출할 수 있을 것이며, 운영 체제와의 통신 방법 또는 명령어는 운영 체제의 종류에 따라 다양하게 변경될 수 있을 것이다.
또한, 사용자 단말기1의 메신저는 사용자 단말기1의 주소 정보를 추출한다(단계 504). 주소 정보 역시 운영 체제와의 통신 또는 명령어 입력을 통해 추출할 수 있을 것이다. 전술한 바와 같이, 주소 정보는 사용자 단말기1의 아이피 주소 및 MAC 주소를 포함할 수 있을 것이다.
네트워크 명칭 정보 및 주소 정보를 추출한 후, 사용자 단말기1의 메신저는 프로그램이 실행되었다는 정보에 대한 UDP 브로드캐스팅 패킷을 생성하여 로컬 네트워크에 연결된 사용자 단말기들에 전송되며, 생성된 UDP 브로드캐스팅 패킷은 사용자 단말기2에도 전송된다.
도 6a는 본 발명의 바람직한 일 실시예에 따른 프로그램 실행 정보를 알리는 UDP 브로드캐스팅 패킷의 필드 구성을 도시한 도면이다.
도 6a를 참조하면, 프로그램 실행 정보를 알리는 UDP 브로드캐스팅 패킷은 식별자 필드(600), 네트워크 명칭 정보 필드(602), 아이피 주소 필드(604), MAC 주소 필드(606) 및 브로드캐스팅 주소 필드(608)를 포함할 수 있다.
식별자 필드(600)에는 프로그램 실행 정보를 알리는 패킷이라는 점을 식별할 수 있는 미리 설정된 식별 정보, 즉 패킷의 역할 정보를 확인하기 위한 패킷 타입이 기록된다. 프로그램 실행 브로드캐스팅 패킷을 수신한 사용자 단말기의 메신저는 식별자 필드(600)에 포함된 정보를 이용하여 메시지를 식별하고 후속 동작인 응답 메시지를 전송하는 과정을 수행한다.
네트워크 명칭 정보 필드(602)에는 상기 단계 502에서 추출된 사용자 단말기의 네트워크에서의 명칭 정보가 기록되며, 아이피 주소 필드(604) 및 MAC 주소 필드(606)에는 상기 단계 504에서 추출된 아이피 주소 및 MAC 주소가 각각 기록된다.
브로드캐스팅 주소 필드(608)에는 패킷의 브로드캐스팅 전송을 위한 주소 정보가 기록되며, 전술한 바와 같이, 제한된 브로드캐스팅이 이용되는 경우 255.255.255.255라는 주소가 이 필드에 기록될 수 있을 것이다.
상술한 필드를 가지는 UDP 브로드캐스팅 패킷이 사용자 단말기2에 전송되면, 사용자 단말기2의 메신저는 UDP 브로드캐스팅 패킷에 포함된 주소 정보 및 네트워크에서의 명칭 정보를 이용하여 사용자 단말기1을 대화 상대로 등록한다(단계 510).
또한, 사용자 단말기2의 메신저는 사용자 단말기1의 브로드캐스팅 메시지 전송 정보를 제2 로컬 네트워크의 사용자 단말기2에 전송한다(단계 512). 전술한 바와 같이, 사용자 단말기2는 브로드캐스팅 발생 정보를 자동적으로 제2 로컬 네트워크의 사용자 단말기3으로 알리도록 설정되어 있다.
사용자 단말기3의 메신저는 사용자 단말기2로부터 수신한 정보를 이용하여 제2 로컬 네트워크에 사용자 단말기1의 프로그램 실행 정보를 브로드캐스팅한다. 이때 브로드캐스팅 패킷의 필드는 도 6a와 동일하다. 다만, 사용자 단말기3의 메신저가 브로드캐스팅을 하지만, 네트워크 사용자 정보 필드(602), IP 주소 필드(604) 및 MAC 주소 필드에는 사용자 단말기1의 정보가 기록된다. 또한, 제1 로컬 네트워크에서 발생한 브로드캐스팅을 중계하는 브로드캐스팅 패킷이라는 점을 확인할 수 있는 식별자 정보가 식별자 필드(600)에 기록된다.
사용자 단말기1이 전송한 브로드캐스팅 패킷을 수신한 제1 로컬 네트워크의 사용자 단말기들의 메신저 및 사용자 단말기3이 전송한 브로드캐스팅 패킷을 수신한 제2 로컬 네트워크의 사용자 단말기들의 메신저는 브로드캐스팅에 대한 응답 정보를 사용자 단말기1에 전송한다(단계 516). 도 2에는 편의상 사용자 단말기2가 브로드캐스팅에 대한 응답 정보를 전송하는 것으로 도시되어 있으나, 브로드캐스팅 패킷을 수신한 모든 사용자 단말기가 사용자 단말기1에게 브로드캐스팅 응답 정보 를 전송한다.
도 6b는 본 발명의 바람직한 일 실시예에 따른 UDP 브로드캐스팅 응답 메시지의 필드 구성을 도시한 도면이다.
도 6b를 참조하면, 본 발명의 일 실시에에 따른 UDP 브로드캐스팅 응답 메시지는 식별자 필드(650), 네트워크 명칭 정보 필드(652), IP 주소 필드(654), MAC 주소 필드(656) 및 목적지 주소 필드(658)를 포함할 수 있다.
도 6b에서, 식별자 필드(650)에는 UDP 브로드캐스팅에 대한 응답 메시지라는 점을 식별하기 위한 미리 설정된 식별 정보가 기록되며, 응답 메시지에도 브로드캐스팅 메시지와 같이 해당 사용자 단말기의 주소 정보 및 네트워크 명칭 정보가 기록된다. 목적지 주소 필드(658)에는 UDP 브로드캐스팅 패킷을 전송한 사용자 단말기의 주소 정보가 기록된다. 도 5의 경우 사용자 단말기1의 주소 정보가 목적지 주소 필드(658)에 기록된다.
도 6a 및 도 6b에는 UDP 브로드캐스팅 패킷 및 이에 대한 응답 패킷이 브로드캐스팅 주소 필드 및 목적지 주소 필드를 포함하고 있는 것으로 도시되어 있으나, 브로드캐스팅 주소 및 목적지 주소는 UDP 패킷을 처리하는 UDP 레이어에서 지정될 수도 있고, UDP 패킷 처리가 완료된 후 진행되는 IP 레이어에서 목적지 주소 또는 브로드캐스팅 주소 정보가 지정될 수도 있을 것이다. 따라서, UDP 레이어에서는 도 6a 및 도 6b 패킷의 필드 중 목적지 및 브로드캐스팅 주소 필드가 지정되지 않을 수도 있다.
상술한 바와 같은 필드 구성을 가지는 UDP 브로드캐스팅 응답 메시지를 수신 한 사용자 단말기1의 메신저는 수신한 응답 정보의 네트워크 명칭 정보 및 주소 정보를 이용하여 응답 정보를 전송한 사용자 단말기들을 오프라인 상태에서의 대화 상대로 등록한다(단계 518).
도 4는 본 발명의 바람직한 일 실시예에 따른 오프라인 상태에서 로컬 네트워크 및 타 로컬 네트워크의 사용자 단말기들간의 메시지 송수신이 가능한 메신저 화면의 일례를 도시한 도면이다.
도 4에 도시된 바와 같이, 도 5의 절차에 의해 로컬 네트워크의 메신저 사용자들이 등록될 경우, 로컬 네트워크에 연결된 사용자 정보가 일반적인 메신저의 친구 리스트와 같이 메신저창에 표시되며, 사용자는 등록된 사용자들과의 인스턴트 메시지 통신을 할 수 있다. 또한, 도 4에 도시된 바와 같이, 네트워크 명칭 정보에 포함된 로컬 네트워크상의 워크 그룹 정보를 이용하여 워크 그룹별로 대화 상대방을 분류하여 표시하는 것이 바람직하다.
도 7은 본 발명의 바람직한 일 실시예에 따른 로컬 네트워크에서의 브로드캐스팅 발생 정보를 타 네트워크에 전달하는 과정을 도시한 순서도이다.
도 7에서 사용자 단말기2는 제1 로컬 네트워크의 단말기이고 사용자 단말기3은 제2 로컬 네트워크의 단말기이다.
도 7을 참조하면, 메신저 설정을 통해 사용자 단말기2 및 사용자 단말기3의 타 네트워크 연동 모드를 활성화시킨다(단계 700).
네트워크 연동 모드 활성화 시, 메신저는 통신을 할 타 네트워크의 단말기 주소를 요청하며, 네트워크 운영자 또는 사용자는 타 네트워크 단말기의 IP 주소를 입력한다(단계 702). 이때, 사용자 단말기2의 메신저에는 사용자 단말기3의 IP 주소가 입력되며, 사용자 단말기3의 메신저에는 사용자 단말기2의 IP 주소가 입력된다.
사용자 단말기2의 메신저 및 사용자 단말기3의 메신저는 모두 브로드캐스팅 패킷이 전달되는지 모니터링하는 상태에 있게 되며(단계 704, 설명의 편의상 사용자 단말기2가 브로드캐스팅 패킷 수신을 모니터링하는 경우를 도시), 사용자 단말기2가 브로드캐스팅 패킷을 수신할 경우, 제1 로컬 네트워크에서의 브로드캐스팅 발생 정보를 단계 702에서 입력된 주소에 상응하는 사용자 단말기3으로 전송한다(단계 706).
사용자 단말기3의 메신저는 사용자 단말기2로부터 전송하는 브로드캐스팅 발생 정보 패킷의 식별자 및 다른 필드의 정보를 통해 제1 로컬 네트워크에서 사용자 단말기1이 프로그램 실행 정보를 브로드캐스팅 하였다는 것을 감지한다(단계 708).
사용자 단말기3의 메신저는 사용자 단말기1의 프로그램 실행 정보, 사용자 단말기1의 주소 정보 및 네트워크에서의 명칭 정보를 포함하는 브로드캐스팅 패킷을 생성하고, 생성된 패킷을 제2 로컬네트워크의 사용자 단말기들에 브로드캐스팅한다(단계 710).
도 8은 본 발명의 바람직한 일 실시예에 따른 오프라인 상태에서 상태 로컬 네트워크의 사용자 단말기들에 상태 변경 정보를 전달하는 과정에 대한 순서도이다.
도 5 및 도 7과 같이, 도 8에서도 사용자 단말기1 및 사용자 단말기2는 제1 로컬 네트워크의 사용자 단말기이고 사용자 단말기3은 제2 로컬 네트워크의 사용자 단말기이다.
도 8을 참조하면, 본 발명에 의한 메신저는, 오프라인 상태에서 사용자가 메신저를 사용할 경우, 사용자의 상태 정보가 변경되는지 여부를 모니터링한다(단계 800). 일반적인 메신저와 같이, 사용자는 자신의 상태를 메뉴를 통해 직접 변경할 수도 있으며(예를 들어, 다른 용무중, 식사중), 일정시간 동안 단말기 사용이 없을 경우 메신저가 자동적으로 상태를 변경할 수도 있다(예를 들어, 자리비움).
상태 변경이 감지되면, 사용자 단말기1의 메신저는 사용자 단말기1의 네트워크 명칭 정보 및 주소 정보를 추출하는 과정을 수행한다(단계 802, 804). 물론, 메신저 프로그램 실행 시에 상기 정보를 추출하므로, 이미 추출된 정보를 이용할 수도 있을 것이다.
사용자 단말기1의 메신저는 변경된 상태 정보를 포함하는 UDP 브로드캐스팅 패킷을 전송하며, 사용자 단말기2는 전송된 UDP 브로드캐스팅 패킷을 수신한다(단계 806). 도 8과 달리, 사용자 단말기1의 메신저는 대화 상대로 등록된 제1 및 제2 로컬 네트워크의 다른 사용자 단말기들로 각각 상태 정보 변경 메시지를 전송할 수도 있을 것이다.
사용자 단말기2의 메신저는 프로그램 실행 때의 경우와 마찬가지로 상태 변경으로 인한 브로드캐스팅 발생 정보를 제2 로컬 네트워크의 사용자 단말기3에 전송한다(단계 808).
사용자 단말기3의 메신저는 사용자 단말기2로부터 수신한 브로드캐스팅 발생 정보를 분석하여 사용자 단말기1의 사용자가 상태가 변경되었음을 알리는 브로드캐스팅 패킷을 생성하여 제2 로컬 네트워크에 브로드캐스팅한다(단계 810).
사용자 단말기2 및 사용자 단말기3의 메신저와 사용자 단말기1 및 사용자 단말기3이 전송한 브로드캐스팅 패킷을 수신한 사용자 단말기들의 메신저는 사용자 단말기1의 사용자의 상태를 변경한다(단계 812).
도 9는 본 발명의 바람직한 일 실시예에 따른 오프라인 상태의 메신저에서 메시지 송신이 이루어지는 과정에 대한 순서도이다.
도 9를 참조하면, 우선 메신저는 메시지를 전송할 대화 상대방 선택 정보를 사용자로부터 수신한다(단계 900). 사용자는 메신저 창에 표시되는 대화 상대방 아이콘을 클릭하는 방식으로 대화 상대방을 선택한다.
사용자는 대화창에 텍스트 메시지를 입력하여 텍스트 메시지 전송을 요청하거나, 단말기의 특정 파일을 전송할 것을 요청하며, 메신저는 사용자의 요청 정보를 판단한다(단계 902).
사용자가 텍스트 메시지 전송을 요청한 경우, 메신저는 대화 상대로 선택된 사용자 단말기의 주소로 메시지 텍스트를 포함하는 UDP 패킷을 전송한다(단계 904). 텍스트의 경우 신뢰성이 상당히 중요한 사항이라 할 수 없으므로 UDP 패킷으로 메시지를 전송하는 것이 바람직하다.
사용자가 파일 전송을 요청한 경우, 메신저는 선택된 대화 상대방 클라이언트와의 TCP 연결을 설정한다(단계 906).
도 10은 본 발명의 바람직한 일 실시예에 따른 메시지 패킷의 필드 구성을 도시한 도면으로, 도 9에 도시된 바와 같이, 본 발명의 일 실시예에 따른 메시지 패킷은 식별자 필드(1000), 소스 주소 필드(1002), 목적지 주소 필드(1004) 및 메시지 필드(1006)를 포함할 수 있다.
도 10의 패킷은 텍스트 전송을 위한 UDP 패킷일 수도 있고, 파일 전송을 위한 TCP 패킷일 수도 있으며, UDP 및 TCP 패킷에서의 헤더 및 트레일러 필드는 일반적인 사항이므로 생략되어 있다.
도 10에서, 소스 주소 필드에는 UDP 또는 TCP 메시지 패킷을 전송하는 사용자 단말기의 주소 정보가 기록된다. 여기서 소스 주소는 IP 주소만으로 이루어질 수도 있으며, 특정한 네트워크의 경우 IP 주소 만으로 식별이 안될 수도 있으므로 IP 주소 및 MAC 주소의 조합일 수도 있다.
통상적인 메신저의 UDP 또는 TCP 메시지 패킷과는 달리, 본 발명에 의한 메시지 패킷은 목적지 주소에 메시지를 수신할 사용자 단말기의 주소 정보가 기록된다. 통상적으로, 메시지 패킷은 메신저 시스템의 인스턴트 메시징 서버에 전달되어 대화 상대방의 단말기로 중계되나, 본 발명에서는 메시지 패킷이 대화 상대방의 단말기로 직접 전송된다. 전술한 바와 같이, 여기서 대화 상대방 단말기의 주소 정보는 아이피 주소 및 MAC 주소를 포함할 수 있다.
파일을 전송할 사용자 단말기와의 TCP 연결이 설정되면, 해당 사용자 단말기로 파일 정보를 포함하는 도 9와 같은 형태의 TCP 패킷을 전송한다(단계 908).