Q&A

  • 팁에 SendBuf 이용 예에서
procedure TMainFrm.SendUserList;
// 유저리스트를 보내준다
var
szBuf : array of Char;
nSize : integer;
begin
SetLength(szBuf, MAX_SIZE);
CopyMemory(pChar(szBuf), pChar('BIN'), 4);
nSize := lvUserList.WriteToBuffer(pChar(@szBuf[4]), MAX_SIZE);
with ServerSock.Socket do
Connections[ActiveConnections-1].SendBuf(pChar(szBuf)^, nSize + 4);
end

procedure TMainFrm.ClientSockRead(Sender: TObject; Socket: TCustomWinSocket);
var
nReceiveLen : integer;
szBuf : array of char;
begin
SetLength(szBuf, MAX_SIZE);
nReceiveLen := Socket.ReceiveBuf(pChar(szBuf)^, MAX_SIZE);
SetLength(szBuf, nReceiveLen);

if pChar(szBuf) = 'BIIN' then
lvUserList.ReadFromBuffer(pChar(@szBuf[4]), nReceiveLen - 4);

end;


이상은 타락님께서 올리신 예입니다...

궁금한 것이 머냐면은요  저기 중간 중간 4의 역할이요...

이걸 활용해서 파일을 Buf로 보낼려구요...
1  COMMENTS
  • Profile
    정찬희 2004.10.19 10:07
    이 소스에는 데이터를 보낼때 앞에다 'BIN' + #0 을 붙여서 보내는데요 앞에
    붙는 문자열('BIN')의 길이가 4바이트(널문자포함해서)이기 때문에 계속 붙이는거 같군요..