목차
없음
본문내용
□ 구현상 특이점
▷ 채팅방과 유저는 링크드 리스트로 관리.
▷ 대기실이 존재.
- 처음 접속하면 모든 유저는 대기실로 자동적으로 입장하게 된다.
- 대기실에서는 유저간에 채팅은 불가능.
- 명령어를 사용하여 채팅방으로 입장하여야 한다.
- 귓속말은 가능하며 파일 송수신도 가능하다.
- 대기실에서 다른 채팅방에 인원이 꽉 찼을 경우 방을 개설하는 것도 가능하다.
▷ 귓속말은 서버를 통해서 전달. ([귓말]로 표시)
▷ 파일송수신은 유저가 소켓을 개설하여 서버를 거치지 않고 1:1로 이루어진다.
□ 각각의 기능에 대한 설명
[채팅방과 유저 관리]
· 서버측에서는 사용자와 방을 링크드 리스트로 관리.
struct user_node { //유저노드
char user_name[30];
int user_state; //대기실or 채팅룸
SOCKET user_sockfd; //유저소켓
struct user_node *next; //링크드리스트로연결된유저노드
};
struct room_node{ //채팅방노드
char room_name[30]; //채팅방이름
int max_user_num; //채팅방최대인원
int user_count; //현재채팅방인원
struct user_node *user_list; //채팅방에있는유저리스트
struct room_node *next; //링크드리스트로연결된채팅방
};
· 각 방은 다음방의 주소를 가지는 변수와 유저들의 리스트 주소를 가지는 변수가 존재.
· 첫 번째 방은 대기실로 사용, 그 다음부터 채팅방으로 사용됨.
· 각 방은 유저리스트 변수를 통해서 유저들을 관리.
· 유저노드는 유저의 이름, 유저소켓, 현재 위치를 나타내는 변수 존재(대기실/채팅룸).
▷ 채팅방과 유저는 링크드 리스트로 관리.
▷ 대기실이 존재.
- 처음 접속하면 모든 유저는 대기실로 자동적으로 입장하게 된다.
- 대기실에서는 유저간에 채팅은 불가능.
- 명령어를 사용하여 채팅방으로 입장하여야 한다.
- 귓속말은 가능하며 파일 송수신도 가능하다.
- 대기실에서 다른 채팅방에 인원이 꽉 찼을 경우 방을 개설하는 것도 가능하다.
▷ 귓속말은 서버를 통해서 전달. ([귓말]로 표시)
▷ 파일송수신은 유저가 소켓을 개설하여 서버를 거치지 않고 1:1로 이루어진다.
□ 각각의 기능에 대한 설명
[채팅방과 유저 관리]
· 서버측에서는 사용자와 방을 링크드 리스트로 관리.
struct user_node { //유저노드
char user_name[30];
int user_state; //대기실or 채팅룸
SOCKET user_sockfd; //유저소켓
struct user_node *next; //링크드리스트로연결된유저노드
};
struct room_node{ //채팅방노드
char room_name[30]; //채팅방이름
int max_user_num; //채팅방최대인원
int user_count; //현재채팅방인원
struct user_node *user_list; //채팅방에있는유저리스트
struct room_node *next; //링크드리스트로연결된채팅방
};
· 각 방은 다음방의 주소를 가지는 변수와 유저들의 리스트 주소를 가지는 변수가 존재.
· 첫 번째 방은 대기실로 사용, 그 다음부터 채팅방으로 사용됨.
· 각 방은 유저리스트 변수를 통해서 유저들을 관리.
· 유저노드는 유저의 이름, 유저소켓, 현재 위치를 나타내는 변수 존재(대기실/채팅룸).
추천자료
컴퓨터의 이해 - 멀티미디어뷰어, 사운드 관련 엔진, 리얼 오디오, 리센도, 미디플러그, 툴박스
자바를 이용한 그래픽 채팅프로그램(멀티유저간 채팅기능, 다각형모양의 그래픽 출력 변경기...
자바 서버 클라이언트 소켓이용 간단한 채팅프로그램
웹사이트 구축 및 관리
이지소켓 콤포넌트 ,다중접속,다중수신,화일전송가능 콤포넌트
x-internet & rich application 기반조사
[클라우드 컴퓨팅] 클라우드 컴퓨팅에 대한 이해와 클라우드 컴퓨팅 시장분석 및 클라우드 컴...
정보검색사 1급, 2급시험대비 정리 및 요약
채팅서버[JAVA]
소개글