Q&A

  • 클라이언트 전체에게 데이타 보내기와 접속상태 체크
ServerSocket.Socket.SendText(SendStr)하면 클라이언트 전체에게 데이타를 날리는 것이 아닌지요?

그리고 클라이언트가 먼저 실행되고 서버가 나중에 실행되었을 때는 어떻게 접속상태를 체크해서 유지해야 하나요?(window환경의 LAN상에서)

1  COMMENTS
  • Profile
    이주흥 1999.12.02 23:15
    박성훈 wrote:

    > ServerSocket.Socket.SendText(SendStr)하면 클라이언트 전체에게 데이타를 날리는 것이 아닌지요?

    > 그리고 클라이언트가 먼저 실행되고 서버가 나중에 실행되었을 때는 어떻게 접속상태를 체크해서 유지해야 하나요?(window환경의 LAN상에서)



    접속된 클라이언트를 관리하는건 ServerSocket.Socket.Connection

    이 관리합니다....전체에게 메세지를 뿌릴려면 For루프를 돌려서

    Connection[i] 해서 뿔려줘야 합니다..i는 0부터 activeconnection - 1까지

    돌려야 합니다.

    예를 들어..

    for i := 0 to ServerSocket.Socket.ActiveConnections - 1 do

    begin

    try

    Serversocket.Socket.Connections[i].SendText('바보');

    except

    break;

    end;

    end;

    욜케 하면 되죠...

    특정 클라이언트에게 뿌릴려면 약간의 기교가 필요하구요...

    그리고 서버의 리슨 유무를 파악하는건 여기Q&A에 어떤 분이

    올려놓으셨는데 간단하게 됩니다...

    ClientSocket의 onError이벤트에 아래와 같이....



    ErrorCode := 0; // 모든 에러를 잠재운다.

    if ErrorEvent = eeConnect then // 연결 관련 에러면...

    begin

    ShowMessage('서버에 연결할수 없어여!');

    end;

    이상 답변이 됐는지 몰겠슴다...