Q&A

  • 자료실의 indy를 이용한 채팅 예제에서...
나름대로 구현을 했습니다. 테스트해보기위해서 서버에 2개의 클라이언트가 접속을 했습니다.
그런데 채팅을 하는데 있어서 이상한 문제가 발생했습니다.
클라이언트에서 메시지를 보내기 위해 엔터키를 1번 누르면 서버의 대화창에서는 보입니다.
그런데 다른쪽 클라이언트의 대화창에서는 보이지가 않습니다.
즉, 엔터키를 2번 눌러야만 상대편 클라이언트쪽으로 메시지가 나타나는군요.
이렇게 되면 서버의 대화창에서는 하나의 메시지와 빈 메시지 2개가 나타나고, 상대편 클라이언트에서는 하나의 메시지만 나타납니다.
______________________________________________________________________ 클라이언트1                 서버의 대화창               클라이언트2
[클라이언트1]:방가      [클라이언트1]:방가        [클라이언트1]:방가
                                [클라이언트1]:
______________________________________________________________________이게 잘못된 소스인것 같은데 전 잘모르겠군요...^^;
procedure TfmClient.edMsgKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
   IdTCPClient1.WriteLn(edName.Text + ' : ' + edMsg.Text);
   edMsg.Text := '';
   Key := #0;
end;
end;
*********************************************************************
엔터키를 한번만 눌러도 되게끔 할 수 없을까요?


                        
0  COMMENTS