안녕하세요..
질문이.. 어떤거냐믄여~ ^^
서버쪽 프로그램 에 있는 listbox 아이템들을
클라이언트 쪽 listbox 로 옮기고 싶어요..
실시간으로 되야 하고 아이템 문자열 이 중복도 되면 안되구요..
어떤 방식으로 하면 좋을까 생각 하는 중인데.. 영~~ 생각이 안나네요..
어느 프로그램에 쓰이냐믄..
채팅 프로그램 인데요..
서버쪽 에서는 클라이언트 대화명을 서버 listbox 에 저장하죠..
그것을 클라이언트가 처음에 접속 하거나 또는 방안에 새로운 사람이 들어올때
방안에 있는 사람들의 대화명을 담고있는 서버쪽
listbox 에서 클라이언트쪽 listbox 에 표시 해야 하는데.. !
어떤 방식으로 보낼지가 난감 합니다 ㅜ.ㅜ;
제가 코딩 하면 이상하게 중복되고 특수문자가 들어가고 그러더라구요..
질문이 난해 하죠 ^^
그럼 고수님들의 답변 기다리며.. 저는 이만..
1. ListBox에서 중복된 문자 입력 거부
Procedure Add(ListBox:TListBox; UserID:String; ....);
Begin
If ListBox.Items.IndexOf(UserID) > -1 then
ListBox.Items.Add(UserID)
Else 이미 저장된 사용자;
End;
2. 중복 또는 특수문자가 출현하는 이유
아마도 소켓 전송 시 전송되어야할 단위를 표시안해주신 것 같습니다.
소켓은 버퍼를 사용하기 때문에 (물론 강제로 플러쉬할 수 있지만)
여러번 나눠보낸 것이 한 번에 또는 한번에 보낸 것이 여러번을 나뉘어서
전달될 수 있습니다. 그러니 한글이 두바이트인 것을 감안할 때
중간에 짤리면 희한한 문자가 생길 수도 있지요.
이를 위해서는 전송되어야할 단위마다 무조건 #13#10 한 줄 먹임을 넣는 방법도
있고, 모든 단위마다
따라서 소켓을 받는 쪽에서는 TStringList에 담아서 한 줄 한 줄 처리하면 됩니다.
보내려는 데이타가 너무 큰경우에는
중간에 짤리면 생각과 다른 엉뚱한 결과가 나타나니까요.
하지만, 채팅과 같은 간단한 프로그램에서는 모든 데이타 마다 한줄 먹이고
받는 쪽에서 한 줄씩 처리하면 간단히 해결될 것입니다.
From 류..
이마루 wrote:
> 안녕하세요..
>
> 질문이.. 어떤거냐믄여~ ^^
>
> 서버쪽 프로그램 에 있는 listbox 아이템들을
>
> 클라이언트 쪽 listbox 로 옮기고 싶어요..
>
> 실시간으로 되야 하고 아이템 문자열 이 중복도 되면 안되구요..
>
> 어떤 방식으로 하면 좋을까 생각 하는 중인데.. 영~~ 생각이 안나네요..
>
> 어느 프로그램에 쓰이냐믄..
>
> 채팅 프로그램 인데요..
>
> 서버쪽 에서는 클라이언트 대화명을 서버 listbox 에 저장하죠..
>
> 그것을 클라이언트가 처음에 접속 하거나 또는 방안에 새로운 사람이 들어올때
>
> 방안에 있는 사람들의 대화명을 담고있는 서버쪽
>
> listbox 에서 클라이언트쪽 listbox 에 표시 해야 하는데.. !
>
> 어떤 방식으로 보낼지가 난감 합니다 ㅜ.ㅜ;
>
> 제가 코딩 하면 이상하게 중복되고 특수문자가 들어가고 그러더라구요..
>
> 질문이 난해 하죠 ^^
>
> 그럼 고수님들의 답변 기다리며.. 저는 이만..
>
>