AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Winsock Example Frage

Offene Frage von "CoYoTE"
Ein Thema von CoYoTE · begonnen am 11. Aug 2010 · letzter Beitrag vom 12. Aug 2010
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#1

AW: Winsock Example Frage

  Alt 11. Aug 2010, 13:57
Ich sagte ja: anhängen Pack am besten das komplette Projekt in ein ZIP-Archiv.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
CoYoTE

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

AW: Winsock Example Frage

  Alt 11. Aug 2010, 14:03
http://professorbass.eu/winsock.rar
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#3

AW: Winsock Example Frage

  Alt 11. Aug 2010, 14:15
Im Moment habe ich noch keine Idee, daher noch einmal die Frage: steht in der Variablen Data (Ereignis TServer.ReceiveData) bereits Müll, oder kommt das erst später? Ich habe den Verdacht, dass es an der Implementierung von Explode liegen könnte.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
CoYoTE

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

AW: Winsock Example Frage

  Alt 11. Aug 2010, 16:08
Ja da steht schon Müll drinnen bei TServer.ReceiveData.

Und bei TServer.Connect
ReceiveData und ZeroMemory steht es richtig drinne im Buffer

das kann ich mit Sicherheit sagen!!!


Echt cool das sie mir helfen!!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#5

AW: Winsock Example Frage

  Alt 11. Aug 2010, 16:34
Ich muss leider zugeben, dass ich keine Ahnung habe, woran das liegen könnte (bzw. ich sehe es einfach nicht). Da muss mal jemand mit einem Delphi > 2007 ran, ich kann das ja auch nicht nachvollziehen mangels Unicode, sry.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
CoYoTE

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

AW: Winsock Example Frage

  Alt 12. Aug 2010, 01:39
Ok
Danke für die Mühe ich hoffe es findet sich da jemand
das gibt es nicht oft Hilfe für umsonst.

Foren sind geil


Also ich habe alles noch einmal genauer zusammengefasst das man nicht so viel blättern muss.

Folgendes Problem:
ich sende ein MSGBOX | Hallo , vom Client an den server.
es kommt hier noch richtig an:
Delphi-Quellcode:
procedure TServer.Connect;
  var
    Buffer: Array[0..8192] Of AnsiChar;
    iRecv: Integer;
  Begin
    if (WSAStartup($0202, wsaData) <> 0) then
    begin
   
      Writeln('Unable to start winsock, unable to continue');
      Readln;
   
      Exit;
    end;
    Close := False;
    repeat
   
      //Prepare a listen socket to be used for our connection
      //and declare its host/port information
      hSocket := Socket(AF_INET, SOCK_STREAM, 0);
      Addr.sin_family := AF_INET;
      Addr.sin_port := htons(hPort);
      Addr.sin_addr.S_addr := INET_ADDR(PAnsiChar(GetIPFromHost(hHost)));
   
      Writeln('Connecting to ' + GetIPFromHost(hHost));
   
      //Attempt the connection using our socket
      if (Winsock.Connect(hSocket, Addr, SizeOf(Addr)) = 0) then
      begin
   
        Writeln('Connected to host');
   
        //Notify our connected client of the connection and send
        //our information
        SendData('ADDNEW|' + UserName + '|' + CompName + '|' + 'Awaiting commands');
   
        //Attempt to receive data from our socket.
        ZeroMemory(@Buffer, SizeOf(Buffer));
        iRecv := Recv(hSocket, Buffer, SizeOf(Buffer), 0);
        while ((iRecv > 0) and (iRecv <> INVALID_SOCKET)) do // <-----------Im Buffer ist alles ok
        begin
          ReceiveData(hSocket, @Buffer); // <-----------Im Buffer ist alles ok
          ZeroMemory(@Buffer, SizeOf(Buffer));
          iRecv := Recv(hSocket, Buffer, SizeOf(Buffer), 0);
        end;
Und dann der Fehler wo ich nicht weis woran es liegt:
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); // <-----------Im Buffer Sind nurnoch Fragezeichen
   
    if Length(Data) > 0 then begin // <-----------in Data Sind die Fragezeichen
   
    //Setup our dynamic array structure
    StrArr := Explode('|', Data); // <-----------in Data Sind die Fragezeichen
   
    //Display incoming message (if strArr[0] = 'MSGBOX')
    if StrArr[0] = 'MSGBOXthen begin
     MessageBox(0,PChar(StrArr[1]),'Winsock Example',MB_OK + MB_ICONINFORMATION);
    end;
Und die Fragezeichen gehen so durch Explode durch und am ende bei ZeroMemory(@Buffer, SizeOf(Buffer)); ist die Nachricht wieder richtig zusehen im Buffer was ist da dazwischen was falsch ist???
das Ganze Projekt habe ich auf mein Server hochladen und ein paar Einträge von mir weiter hinten kann man sich es runterladen mit dem Client und alles was dazugehört.

Geändert von CoYoTE (12. Aug 2010 um 16:32 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz