Einzelnen Beitrag anzeigen

CoYoTE

Registriert seit: 11. Aug 2010
8 Beiträge
 
#8

AW: Winsock Example Frage

  Alt 11. Aug 2010, 10:50
Okay gut sage ja ich bin das erstemal in einem Forum sorry deswegen.

Also es geht darum.
dieses beample wo ich im Internet gefunden habe wurde in der Delphi Version 2006 gemacht.
um es zum laufen zubringen für Delphi Version 2009 musste man folgendes ändern.
String = AnsiString
PChar = PAnsiChar
Char = AnsiChar
Das habe ich gemacht und der Client lief.
bei dem Server habe ich nun folgendes Problem:

Inkompatible Typen AnsiChar und Char. wen ich hier wieder PCar Anstatt PAnsiChar Mache geht das. mit den Compilieren weiter
Delphi-Quellcode:
if StrArr[0] = 'MSGBOXthen begin
   MessageBox(0,PAnsiChar(StrArr[1]),'Winsock Example',MB_OK + MB_ICONINFORMATION)
  end;
end;
Inkompatible Typen Array und PWideChar wen ich hier aus AnsiChar Ein PWideChar Mache geht es. weiter mit dem Compilieren.
Delphi-Quellcode:
function TServer.UserName(): AnsiString;
var
  User : array[0..255] of AnsiChar;
  SizeOfUser : Cardinal;
begin
  SizeOfUser := SizeOf(User);
  if GetUserName(User, SizeOfUser) = True then
    Result := AnsiString(User)
  else
  Result := 'Unknown';
end;
Das selbe gilt für hier:
Delphi-Quellcode:
function TServer.CompName(): AnsiString;
var
  Comp : array[0..255] of AnsiChar;
  SizeOfComp : Cardinal;
begin
  SizeOfComp := SizeOf(Comp);
  if GetComputerName(Comp, SizeOfComp) = True then
    Result := AnsiString(Comp)
  else
  Result := 'Unknown';
end;
Gut nun funktioniert es und der Server startet und man kann sich au verbinden.
Wen ich nun Aber eine Message vom Client schicke auf den Server (MSGBOX).
Kommen nur Fragezeichen an wen ich es mir mit dem Debugger anschaue nämlich hier an dieser Stelle:
Delphi-Quellcode:
procedure TServer.ReceiveData(Socket: TSocket; Buffer: PByte);
var
  Data: AnsiString;
  strArr: TDynStringArray;
begin

  //Convert our data to a AnsiString and trim it
  Data := AnsiString(Buffer);
  Data := Trim(Data);

  if Length(Data) > 0 then begin

  //Setup our dynamic array structure
  StrArr := Explode('|', Data);

  //Display incoming message (if strArr[0] = 'MSGBOX')
  if StrArr[0] = 'MSGBOXthen begin
   MessageBox(0,PChar(StrArr[1]),'Winsock Example',MB_OK + MB_ICONINFORMATION)
  end;

end;
end;
Mache ich prinzipiell etwas falsch.
Naja die Message kommt aber Weiterunten im Code richtig an habe ich gesehen mit dem Debugger.
meine frage Jetzt kann mir jemand helfen den Fehler zu finden?
  Mit Zitat antworten Zitat