메뉴 건너뛰기

넷서버 사용 팁/강좌

강좌 ch 3.메세지클라이언트의 제작

admin 2008.01.24 19:28 조회 수 : 4526

ch 3.메세지클라이언트의 제작

여기서 제작하는 클라이언트는 다음의 기능을 수행합니다.

- 다른 클라이언트로의 메시지전송

- 다른 클라이언트로부터 메시지수신

- 서버로부터의 메시지 수신

- 서버로의 메시지전송

 


1. 폼위에 TRequest, TClientDelphi를 놓고 2장에서와 같이 설정을 합니다.

2. 폼위에 버튼과 세 개의 에디터를 놓고 2장과 같이 이름을 정합니다.

3. btnConnect의 OnClick이벤트에 다음과 같이 적습니다.

 with Request1 do begin

ConnectProp.Host := edHost.Text;

ConnectProp.UserName := edUserName.Text;

ConnectProp.Password := edpassword.Text;

Connected := true;

end;

4. 메시지전송부분을 구현합니다. 폼에 edit와 버튼을 놓고 이름을 다음과 같이 정합니다.

5. btnSendToClient의 OnClick이벤트에 다음과 같이 지정합니다.

Request1.SendMsgNoResult('MSG', edMsg.Text, edReceiver.Text);

6. 다음은 서버로의 메시지전송부분을 구현합니다.

폼에 에디터와 버튼을 놓고 다음과 같이 이름을 정합니다.

7. btnServerMsg에 다음과 같이 코드를 적습니다.

Request1.SendMsgToServerNoResult('MSG', edServerMsg.Text);

8. 다른 클라이언트로부터의 수신부분을 구현합니다.

폼에 메모를 하나놓습니다. TRequest.OnReceiveMsg에 다음과 같이 코드를 구현합니다.

procedure TForm1.Request1ReceiveMsg(Sender: TObject; aThread: TThread;

  aSender: String; aCounter: Integer; aCmd: String; aClientData,

  aServerData: Variant);

begin

  if aCmd = 'MSG' then Memo1.Lines.Add(aSender + ':' + aClientData);

end;

9. 서버로부터 보내는 메시지를 수신합니다.

TRequest.OnReceiveServerMsg에서 다음과 같이 코드를 구현합니다.

procedure TForm1.Request1ReceiveServerMsg(Sender: TObject;

  aThread: TThread; aCommand: String; aData: Variant);

begin

  if aCommand = 'MSG' then Memo1.Lines.Add('[Server Message]:' + atData);

end;

 

10. 컴파일하여 실행합니다. 서버에 연결하기 전에 각 클라이언트는 고유의  username을 적은후에 서버에 연결하여 메시지를 전달하면 됩니다.

위로