간간히,
갤러리 들어오면서 무슨글있나~ 슉 ~ 확인만하고가다가,
채팅프로그램 작은거 만드는데
너무너무너무 안되서 답답해서 글올리어요!!!
궁금한점이!!
채팅프로그램 만들고 있는데
서버 만들어놓고, 여러 클라이언트들이 접속해서 채팅할수 있는것이여요
채팅이랑 대화명까지는 코딩을 했는데,
List클래스를 써서 오른쪽에 대화참여자 명단을 리스트로 나열하려고 하는데,
생각처럼 되질 않아서요..
처음에 생각한게
서버에 접속하면 " 조미남님이 접속하였습니다 " 뜨는것처럼 해서
List를 추가 시켰는데 그러면 각 클라이언트에만 자기 이름이 추가되고
나머지 다른클라이언트들한테는 추가가 되지 않아요
아 그래서 당연한거구나 해서
다른방법으로, 들어올때마다 그 대화자 이름을 배열에 넣은다음에
마찬가지로 접속했을때 그 배열을 List에 쭈루룩 add 시키는것이여요
그럼 문제 없이 각 클라이언트에 총접속자 이름이 출력이 되요
하지만..
나가는경우에는..
그 나가는사람 이름만 나가게 하고싶은데
끝에서부터 하나씩 줄이니..
먼저 들어온사람이 나가도 마지막에 들어온 사람 이름이 없어져버려요..
어떻게 해결을 해야 할까요..
방향 잡아주세요..
아 언어는 java에요 !_!
배열을 리스트에 add 할때 지금 접속한 클라이언트한테만 쏴주는거 아냐?접속해 있는 모든 클라이언트한테 쏴야지.
대화명 찾아서 배열열에서 지워 ㅋ
해시라고 들어봄?
난쟁이오크// 그러네요.. 막 지금들어오는 접속자한테만 쏘게되네요 ㅠㅠ, 아 머리아푸어, 해시라고 들어봤지요 적용할 생각은 못해봤구요.... 모든클라이언트 한테 쏘는문제, 나가는 접속자만 지우는문제.. 고민고민!!!!
서버가 명단을 가지고 관리하다가 클라이언트가 나가면, 서버가 가진 명단에서 삭제하고 그 명단을 전체 클라이언트한테 넘기셈
클라이언트는 명단을 받으면 자기가 표시하던 리스트를 모두 지운다음에 명단대로 다시 add
참가자명단은 링크드리스트를 사용해서 관리하면, 중간에서 사용자가 나가도 무난하게 제거 가능
생각놀이 // 음음, 어떤걸 의미하는건지는 알것같아요!!, 적용하는게 일이군뇨!! 근데 서버에서 명단을 가지고 관리하다가, 클라이언트가 나가면 서버가 가진 명단에서 삭제 하신다고 하셨는데, 그 나간 클라이언트가 서버에서는 무엇인지 어떻게 알지요 ?????
1. 클라이언트가 들어오거나 나갈 때 자신의 정보를 담은 메세지를 서버로 넘기는 방법
2. 서버가 일정간격으로 전체 클라이언트들에게 클라이언트의 정보를 담은 메세지를 요청하고 응답없는 녀석은 짤라버리는 방법
이렇게 두가지를 병행하면 무난하지 않겠음?
생각놀이 // ㅎㅎㅎ.. 어떤느낌인주 알겠습니다!! ,느낌만!!, 자바공부가 너무 안된상태라서, 더 열심히해야지요 잘해보겠습니다!!!