하고다 하는 작업은 서버에 접속된 모든 클라이언트로 데이타를 전송하려고 합니다.
서버쪽은 Idle Event에서 다음과 같이 작성했습니다.
var
A : Array[0..10] of Byte;
nI : Integer;
begin
FillChar(A, SizeOf(A), $00);
for nI := 0 to 10 do
A[nI] := nI;
for nI := 0 to ssktClient.Socket.ActiveConnections-1
ssktClient.Socket.Connections[0].SendBuf(A, Length(A));
end;
클라이언트쪽은 다음과 같습니다.
procedure TfrmClientMain.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
nI, nTmp : Integer;
anRxData : Array of Byte;
begin
nTmp := Socket.ReceiveLength;
SetLength(anRxData, nTmp);
Socket.ReceiveBuf(anRxData, nTmp);
end;
서버쪽에서 보낸 데이타(배열)를 클라이언트쪽에서 배열로 그대로 담으려고 하는데...
그게 잘 안되네여...
어찌하면 되는지 설명 좀 부탁합니다.
Socket.ReceiveBuf(anRxData[0], nTmp);
아래 for문도 약간 잘못된거 같은데...
for nI := 0 to ssktClient.Socket.ActiveConnections-1
ssktClient.Socket.Connections[nl].SendBuf(A, Length(A)); // 0 => nl
end;
과객 wrote:
> 하고다 하는 작업은 서버에 접속된 모든 클라이언트로 데이타를 전송하려고 합니다.
> 서버쪽은 Idle Event에서 다음과 같이 작성했습니다.
> var
> A : Array[0..10] of Byte;
> nI : Integer;
> begin
> FillChar(A, SizeOf(A), $00);
> for nI := 0 to 10 do
> A[nI] := nI;
>
> for nI := 0 to ssktClient.Socket.ActiveConnections-1
> ssktClient.Socket.Connections[0].SendBuf(A, Length(A));
> end;
>
> 클라이언트쪽은 다음과 같습니다.
> procedure TfrmClientMain.ClientSocket1Read(Sender: TObject;
> Socket: TCustomWinSocket);
> var
> nI, nTmp : Integer;
> anRxData : Array of Byte;
> begin
> nTmp := Socket.ReceiveLength;
> SetLength(anRxData, nTmp);
> Socket.ReceiveBuf(anRxData, nTmp);
> end;
>
> 서버쪽에서 보낸 데이타(배열)를 클라이언트쪽에서 배열로 그대로 담으려고 하는데...
> 그게 잘 안되네여...
> 어찌하면 되는지 설명 좀 부탁합니다.
>