Ergebnis 1 bis 5 von 5

Baum-Darstellung

  1. #1
    Anfänger
    Registriert seit
    11.08.2010
    Beiträge
    7

    Standard Winsock Problem

    Hallo ich bin neu gier Grüße euch alle.

    ich habe folgendes Problem:
    ich sende ein MSGBOX | Hallo vom Client
    es kommt hier noch richtig an:
    Code:
    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:
    Code:
    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] = 'MSGBOX' then 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 kann mir da jemand helfen???
    ich kann auch den kompletten Text posten bei belieben oder auch das Ganze Projekt auf mein Server hochladen und als Download anbieten mit Client und allem eben.
    Geändert von ProfessorBass (12.08.2010 um 16:37 Uhr)

Ähnliche Themen

  1. Problem bei winsock
    Von aKiller47 im Forum C, C++
    Antworten: 1
    Letzter Beitrag: 16.12.2008, 21:44
  2. [.Net][F]Winsock VB.net
    Von KAS im Forum .NET Sprachen - Techniken
    Antworten: 4
    Letzter Beitrag: 17.10.2008, 21:50
  3. [H]VB6 Winsock[C]
    Von HackCombot im Forum VisualBasic
    Antworten: 19
    Letzter Beitrag: 09.09.2008, 19:58
  4. [VB6] Schneller Login über Winsock "Problem"
    Von ProCelSioR im Forum VisualBasic
    Antworten: 0
    Letzter Beitrag: 22.08.2008, 22:33
  5. Winsock - VB6 & VB.net
    Von Pekel im Forum VisualBasic
    Antworten: 8
    Letzter Beitrag: 11.08.2008, 21:24

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •