Function Broadcast_Jpeg_Thread(P:Pointer):Longint;stdcall;
var Loop:integer;
MSG :integer;
buff:Pointer;
begin
try
여기서 P:Pointer 를 이용
buff 에 들어있는 자료를 이용하고 싶은데
잘 이해를 못하고 있습니다.
For Loop:=0 to Socket_list.Count -1 do
begin
with Socket_list.SocketItem[Loop] do
if (ChkSocket = CSocket) and (Connected) then SendUser(P^);
end;
Finally
Result:=1;
end;
end;
Buff :Pchar
Buff = 4byte, 4byte, 4byte, 4byte, Stream 형식으로 자료가 들어있습니다
integer integer integer integer TMemoryStream
function TForm1.Broadcast_Jpeg(CSocket:integer;Socket_List:TSocketList;Buff:Pchar):Boolean;
var Thread :THandle;
ThrID : DWORD;
begin
Thread:=CreateThread(nil,0,@Broadcast_Jpeg_Thread, @Buff,0,ThrID);
if Thread = 0 then ShowMessage('Broadcast_Jpeg_Thread Not Create');
CloseHandle(Thread);
end;
구분자별로 라는 뜻이 무슨 뜻인지요..?
PInteger도 PChar도 모두 Pointer입니다..
만약 Integer와 String을 따로 구별하고 싶으신것이라면 값을 만드실 때 구분자를 넣어서 만드셔서 보내는 방법밖에 없습니다.
integer일 경우에는 'i' + IntToStr(값) 하신 후 빼서 쓰실때는 저 맨앞의 i를 빼고 넣어주시면 되죠.. string의 경우에는 다른 구분자(예를들어 's')를 넣고 구분하시면 될 듯 합니다. 물론 이 값들을 보낼때는 pChar ( 즉 String형태)로 보내셔야겠지요.