Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Probleme mit Winsock unter D2010 (https://www.delphipraxis.net/159799-probleme-mit-winsock-unter-d2010.html)

Captnemo 13. Apr 2011 12:05

Probleme mit Winsock unter D2010
 
Hallo Leute,

ich hab mir mal aus dem Internet folgenden Beispielcode gezogen: http://www.fr-an.de/soft/13/index.htm.
Dabei handelt es sich um ein Beispiel mit einer Klasse für einen Anrufmonitor für eine Fritzbox.

Soweit so gut. Die dort zu finden Binary läuft bei mir einwandfrei (Man muß wohl aber erst den Port über #96*5* freischalten und kann hinterher ihn über #96*4* wieder abschalten).

Dann hab ich mir den Source gezogen. Unter D7 compiliert läuft das Prog genauso, wie im Demo-Binary. Unter D2010 compiliert wird allerdings kein Socket zur Fritzbox aufgebaut.
Die IP der Fritzbox wird ggf. auch über die Funktion mit aufgelöst, aber sowohl das WinSock.GetHostByName als auch das WinSock.Connect schlägt unter D2010 fehl. Unter D7 läuft's aber einwand frei.

Ich frag mich jetzt ob's in D2010 einen Bug in der WinSock-Unit gibt, oder sich da was Grundlegendes geändert hat?

Achso, alles getestet und W7-64bit.

shmia 13. Apr 2011 12:27

AW: Probleme mit Winsock unter D2010
 
Zitat:

Zitat von Captnemo (Beitrag 1094828)
... oder sich da was Grundlegendes geändert hat?

Es hat sich was Grundlegendes geändert: bei D2010 hat der Datentyp String zwei Bytes pro Zeichen (Unicodefähigkeit).
Deshalb müsstest du alle Vorkommen (in Unit UCallMonitor) von String nach AnsiString und PChar nach PAnsiChar ändern.

Übriges solltest du das Projekt nicht als Vorlage verwenden, denn es hat gleich 2 entscheidende Schwächen:
1.) direkter Zugriff auf WinSock (schon wieder das Rad neu erfunden)
2.) Datentransport über TCP/IP und das Protokoll auf Anwendungsebene sind untrennbar in einer Klasse verquickt

Captnemo 13. Apr 2011 16:24

AW: Probleme mit Winsock unter D2010
 
Danke. Nach Umstellung auf AnsiString und PAnsiChar läufts ;-)

Mit deinen beiden Anmerkungen hast du sicherlich recht, aber für meine Zwecke reicht's. Is eh nur für den Eigenbedarf und um zu schauen wie's geht. Ich werd noch versuchen selber was zu machen. Hatte mich nur gewundert, warum das so erst mal nicht funktioniert.

Dank dir.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 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