|
대충 해보면 아래와 같이 코딩하시면될것 같은데요
실제 테스트 해본 코드는 아니니
디버깅은 직접 해보시길 바랍니다.
공부하실때... C++빌더 도움말을 많이 참고하세요
각각의 콤포넌트에 대한 도움말만 제대로 잘 읽어보셔도 많은 공부가 될겁니다. ^^
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
AnsiString sData = Socket->ReceiveText();
int iCount = ServerSocket1->Socket->ActiveConnections;
for (int i=0; i<iCount; i++)
{
// 데이터를 보낸 클라이언트이게는 안보냄
if( ServerSocket1->Socket->Connections[i] != Socket )
continue;
ServerSocket1->Socket->Connections[i]->SendText( sData);
}
}
룸펜 님이 쓰신 글 :
: void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
: TCustomWinSocket *Socket)
: {
: int nLen;
: char szBuf[16];
:
: nLen=Socket->ReceiveLength();
: Socket->ReceiveBuf(szBuf,nLen);
:
: // ServerSocket1->Socket->SendBuf(szBuf,sizeof(szBuf)); <--이걸로 하면 send할 클라이언트가 없다는 에러
: // Socket->SendBuf(szBuf,sizeof(szBuf)); <-- 이걸하면 데이타를 보내준 클라이언트한테만 다시 데이터 전송.
:
: 제가 만들려는게 여러 클라이언트를 띄워서 한 클라이언트에서 서버에게 데이터를 전송하면 서버는 그 데이터를
: 받아서 다른 클라이언트들에게 데이터를 뿌려주는건데요.
: 주석처리한 부분중에 첫번째줄은 실행중 에러나구요,
: 밑에 주석처리한 걸로 하면 데이터를 보내준 클라이언트한테만 다시 그 데이터를 줍니다..
: 제가 아직 초보가 클라이언트 전체에게 보내주는 방법을 몰라서 이렇게 조언을 구합니다.
|