Hi,
ich hab ein Spiel fürs Netzwerk geschrieben und "DirectPlay" (DXPlay) verwendet.
Die Nachrichtenübertragung klappt vom Client zum Server, umgekehrt jedoch nicht.
Delphi-Quellcode:
procedure TFSpiel.sende (ID : integer; Nachricht : String);
VAR
ChatMsg: ^TDXChatMsg;
i, MsgSize: Integer;
dwType:DWORD;
Len:WORD;
Msg:ARRAY[0..0] OF Char;
begin
MsgSize :=SizeOF(TDXChatMsg)+Length(Nachricht);
GetMem(ChatMsg, MsgSize);
try
with ChatMsg^ do
begin
dwType := DX_ChatMessage;
Len := Length (Nachricht);
StrLCopy(Msg, pChar(Nachricht), Length(Nachricht));
end;
if ID = 0 then
{ Alle Teilnehmer }
FSpiel.DXPlay1.SendMessage(DPID_AllPlayers, ChatMsg,MsgSize)
else
{ Ein spezieller Teilnehmer }
FSpiel.DXPlay1.SendMessage(ID, ChatMsg, MsgSize);
finally
FreeMem(ChatMsg);
end;
end;
Was ist denn am Code falsch?
PS: Würdet ihr lieber die
INDY-Komponenten nehmen?
mfg
devnull