Q&A

  • Re: 소켓 프로그램에서의 궁금한것!!
1번과 3번만 답합니다. 2번은 찾아 보세요...

1번은 for 문을 사용합니다.



For k := 0 to SerVerSocket1.Socket.ActiveConnections-1 do begin

ServerS.Socket.Connections[k].SendText(edit1.Text+':'+Memo1.Text);

end;



3 번은

소켓의 Read 이벤트에서



MessageAn := Socket.ReceiveText;

posti := pos(' ',MessageAn);

if (Copy(MessageAn,1,(posti-1)) = 'SHOW') then

원하는 동작 ....

....



이런식으로 이용을 하시든지 아니면 스트림을 사용하여 전송을 합니다.

아니면 대문자로 글자의 길이를 일정하게 해서 메시지를 전송할 수 도 있습니다.



도움이나 될지 모르겠네요......







정숙 wrote:

> 지금 소켓 프로그램을 짜고 있는데요...

> 모르는 부분이 있어서 이렇게 글을 올립니다.

>

> 1. 한개의 서버에서 메세지를 보낼때 여러개의 클라이언트에서 메세지를 받게 하려면 어떻게 해야하나요...??

> (지금 현재는 1:1 밖에 안되거든요...그러니깐 서버 1 : 클라인언트 3 이 되게 하고싶은데요..)

>

> 2. 밑에 프로그램을 보면 제가 SendText와 ReceiveText을 썼는데요...이거 말구 SendBuf와 ReceiveBuf을 이용하고 싶은데 어떻게 해야하나요..

>

> procedure TForm1.Memo2KeyPress(Sender: TObject; var Key: Char);

> var

> iValue : Integer;

> begin

> if Key = #13 then begin

> Key := #0;

> if IsClient then

> iValue := ClientS.Socket.SendText(edit1.Text+':'+memo1.Text)

> else

>

>

> iValue := ServerS.Socket.Connections[0].SendText(edit1.Text+':'+Memo1.Text);

>

> memo2.lines.add(edit1.Text+':'+memo1.Text);

> memo1.lines.Clear;

> memo1.SetFocus;

> memo1.SelStart := 0;

> end;

> end;

>

> procedure TForm1.ClientSRead(Sender: TObject; Socket: TCustomWinSocket);

> begin

> memo2.Lines.Add(Socket.ReceiveText);

> end;

>

> 3. 마지막으로 실행창을 띄운 뒤 메세지를 'SHOW Good Morning' 라고 했을때 Show Message 가 뜨고 SHOW 글자 을 뺀 Good Morning가 Show Message 창에 뜨게하고 싶은데요...

> (대문자 'SHOW' -> Show Message 'Good Morning' -> Show Message창의 내용)

> P.S 여기서 핵심은 Chat창에서 대문자 'SHOW'을 입력시 Show Message가 뜨게 하는겁니다.

>

> 쫌 복잡하죠....

> 급히 해야 될 숙제거든요 -.-;

> 제가 하기엔 어려운 부분이라...

> 이 세가지 질문중 아는 부분만 알려주셔두 정말 정말 고맙겠습니다.

> 아주 급하거든요... T.T

> 답이 빨리 왔으면 좋겠습니다.

>

> 이메일 : jshope@korea.com

0  COMMENTS