AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IPWorks [Problem bei Übersetzung C++] WOULDBLOCK
Thema durchsuchen
Ansicht
Themen-Optionen

IPWorks [Problem bei Übersetzung C++] WOULDBLOCK

Ein Thema von Dragon27 · begonnen am 17. Sep 2009 · letzter Beitrag vom 17. Sep 2009
Antwort Antwort
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

IPWorks [Problem bei Übersetzung C++] WOULDBLOCK

  Alt 17. Sep 2009, 20:33
Hallo zusammen,

ich arbeite derzeit mit den IPWorks Komponenten und habe nun Probleme beim Senden und Empfangen wenn der Puffer voll ist.

Seit heute früh klicke ich mich durchs Internet um zu recherchieren wie ich diesen Fehler abfangen kann. Leider existiert
nur ein C(++) Code auf der Webseite. Diesen kann ich zwar teilweise erfassen aber ich komme in der Beziehung nicht klar das
ganze in Delphi umzusetzen.

Den Support von /n Software habe ich ebenfalls kontaktiert. Leider mit einer nicht so ganz tollen Antwort in der angedeutet
wurde, dass die Lösung ganz leicht wäre ... ja aber wie? Das schreiben sie nicht.

Vielleicht kann mir von Euch einer helfen. Danke!

Link zum C(++)Code:http://nsoftware.com/kb/showentry.aspx?entry=06170413

Zitat:
(von /n Software)
Also note that if the Timeout property is set to a positive value, all WOULDBLOCK errors are handled internally rather than failing with the error.
(Timeout ist bei mir 0)
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: IPWorks [Problem bei Übersetzung C++] WOULDBLOCK

  Alt 17. Sep 2009, 20:43
Der Socket Fehler WouldBlock ist eigentlich kein Fehler, sondern nur die Nachricht, dass man erstmal warten soll (entweder weil beim Empfangen noch nichts zum Empfangen da ist, oder weil beim Senden der Socket auf Grund von bspw. vollem Buffer grad nicht senden kann.

Und was genau ist das Problem?
Willst du den Fehler abfangen, aber die Komponenten rücken ihn nicht heraus, weil sie selber damit arbeiten oder fragst du wie du einen try..except Block um SetDataToSend legst?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#3

Re: IPWorks [Problem bei Übersetzung C++] WOULDBLOCK

  Alt 17. Sep 2009, 20:47
Erstmal danke für deine Antwort!

Also bei mir ist das so, dass der Client diesen Fehler(Puffer voll) bekommt und der Server dann abstürzt. Bei den
IP-Works Komponenten sende ich immer Zeile für Zeile ein Memo.

Also nach dem Muster:

Delphi-Quellcode:
for i:=0 to memo1.count-1 do begin
  Client.sendline('ml'+#0+memo1.lines[i]);
end;
(Natürlich ist das beim Programm noch mit Verschlüsselung etc.)

Mein Prblem ist, dass ich nicht verstehe wie der Client/Server warten kann bis der Puffer leer ist bzw. ob man den Puffer nicht vergrößern kann.

Danke!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#4

Re: IPWorks [Problem bei Übersetzung C++] WOULDBLOCK

  Alt 17. Sep 2009, 22:30
So, Probelm gelöst....

1. Globale Variable deklarieren (CanSend:Boolean)
2. Wenn Daten gesendet werden sollte das ganze so aussehen:

Delphi-Quellcode:
      try
        Client.DataToSend:='TEXT'+#10;
      except
        Cansend:=false;
      while Cansend=false do begin
         Client.DoEvents;
      end;
       if Cansend=true then begin
         Client.DataToSend:='TEXT'+#10;
       end;
      end;
3. Im OnReadytoSend Ereignis muss die Variable CanSend auf true gesetzt werden.

Falls trotzdem jemand einen Verbesserungsvorschlag hat immer her damit . Auf alle Fälle funktioniert es bei mir so.
Delphi is ......... DELPHI!!
  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 00:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz