Q&A

  • 서버소켓에서 멀티커넥션을 이루는 경우..
서버에서 멀티커넥션을 이루고있을때,

해당 클라이언트중

어느 하나가 Disconnect될때..

그 인덱스이하의 클라이언트들이 작업을 계속하고 있으면..

에러가 발생되는거 같은데요..

즉..

connections[0]과 connections[1]이 같이 작업중인데..

connections[0]의 작업이 끝나서

연결을 끊어버리면..

connections[1]의 작업도중 list out of bounds()...에러가 발생하는 것 같습니다.

어떻게 해결해야 하나요?





1  COMMENTS
  • Profile
    나그네 2001.08.14 01:03
    connections[0]과 connections[1]

    과 같이 지정해서 사용하시면 안됩니다.

    connections[0]의 연결이 끊기면 인덱스가 땡겨지기 때문이죠...

    그것보다는 각 클라이언트의 ip라던가 소켓핸들을 가지고 Connections를 찾으셔서 작업하셔야 합니다.

    혹은 접속되어 있는 모든 클라이언트에게 동일한 작업을 하신다면 접속되어 있는 클라이언트 갯수만큼 Loop 돌면서 보내주시면 되구요..

    for Loop := 0 to aaServerSocket.Socket.ActiveConnections - 1 do

    begin

    aaServerSocket.Socket.Connections[i].SendText('aaaaa');

    end;

    음 뭐 이런 식으로요~~



    델~초^^ wrote:

    > 서버에서 멀티커넥션을 이루고있을때,

    > 해당 클라이언트중

    > 어느 하나가 Disconnect될때..

    > 그 인덱스이하의 클라이언트들이 작업을 계속하고 있으면..

    > 에러가 발생되는거 같은데요..

    > 즉..

    > connections[0]과 connections[1]이 같이 작업중인데..

    > connections[0]의 작업이 끝나서

    > 연결을 끊어버리면..

    > connections[1]의 작업도중 list out of bounds()...에러가 발생하는 것 같습니다.

    > 어떻게 해결해야 하나요?

    >

    >