AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen FreePascal UDP Socket von Win auf Linux portieren
Thema durchsuchen
Ansicht
Themen-Optionen

UDP Socket von Win auf Linux portieren

Ein Thema von gORDon_vdLg · begonnen am 29. Okt 2011 · letzter Beitrag vom 31. Okt 2011
Antwort Antwort
Benutzerbild von gORDon_vdLg
gORDon_vdLg

Registriert seit: 7. Nov 2009
26 Beiträge
 
Delphi XE Architect
 
#1

UDP Socket von Win auf Linux portieren

  Alt 29. Okt 2011, 13:54
Also wie der Titel schon sagt versuche ich gerade einen socket Server von Delphi auf Lazarus zu portieren. Google sagte mir das es die Funktion inet_addr auch auf Linux gibt, mein Problem ist jedoch das ich diese Funktion in Lazarus nicht finde. Gibt es da ne Unit oder muss ihc sie irgendwie selber einbinden bzw. ne Alternative verwenden? Und wenn ja welche?

Danke schon mal im vorraus!
  Mit Zitat antworten Zitat
creed steiger

Registriert seit: 2. Dez 2009
116 Beiträge
 
#2

AW: UDP Socket von Win auf Linux portieren

  Alt 29. Okt 2011, 14:20
Synapse als Alternative vielleicht?

http://www.ararat.cz/synapse/doku.php/public:howto

nimm aber den Release aus dem SVN
  Mit Zitat antworten Zitat
grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#3

AW: UDP Socket von Win auf Linux portieren

  Alt 29. Okt 2011, 19:14
Also, ganz ausm Kopf und ohne nachzuschauen würde ich sagen, die ist in der Unit Winsock, die es zwar auch unter Lazarus/Freepascal gibt (uses winsock aber natürlich nicht unter Linux.

Wie creed steiger schon erwähnt hat: nimm synapse (und ja, nimm die aus dem svn), das geht unter windows, linux, delphi, lazarus,...

Gruß
Luggi
  Mit Zitat antworten Zitat
Benutzerbild von gORDon_vdLg
gORDon_vdLg

Registriert seit: 7. Nov 2009
26 Beiträge
 
Delphi XE Architect
 
#4

AW: UDP Socket von Win auf Linux portieren

  Alt 30. Okt 2011, 01:45
Danke schonmal für den Tipp, ich hab mir synapse aus dem SVN geladen. Er sagte mir dann das er die libc Unit nicht findet. Irgendwo hab ich mir dann ergooglet das die Unit deprecated wäre und so.
Was meint ihr, zusehen das man die Unit trotzdem ans laufen bekommt?
Bisher hab ichs damit ersmal sein gelassen und versuche die Funktion selbst aus der libc einzubinden. Ob das klappt so wie ich mir das vorgestellt habe werde ich später noch herausfinden, ich melde mich dann wieder. Im zweifelsfalle müsste ich die Funktion selber nachbauen, nur hab ich halt gelesen das es die Funktion schon gibt und sämtliche andere socket spezifischen Funktionen auch, daher wollte ich das Rad nicht neu erfinden, und das wird sicher nicht die einzige Funktion sein die ich im laufe des portierens nachbauen müsste.

Also erstmal vielen Dank, der Tipp ist ganz gut, was ich so gesehen habe scheint synapse wohl sehr brauchbar zu sein sofern man es am laufen hat.

Edit:
So, ich habe jetzt weiter programmiert und es so gelöst:
function inet_addr(cpChar):Integer; cdecl; external 'libc.so';

alles weitere läuft jetzt auch. Mein Server ist portiert =3 Danke trotzdem für die Hilfe!

Geändert von gORDon_vdLg (30. Okt 2011 um 03:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#5

AW: UDP Socket von Win auf Linux portieren

  Alt 30. Okt 2011, 11:45
Danke schonmal für den Tipp, ich hab mir synapse aus dem SVN geladen. Er sagte mir dann das er die libc Unit nicht findet. Irgendwo hab ich mir dann ergooglet das die Unit deprecated wäre und so.
Was meint ihr, zusehen das man die Unit trotzdem ans laufen bekommt?
Das Problem mit der Unit LibC ist, dass sie eingeführt wurde, um die Portierung von Kylix-Code zu erleichtern. Sie ist auch absolut linux- und x86-spezifisch. Das heißt, sobald du Code der die LibC-Unit verwendet auf einem BSD oder auch nur einem x86_64-Linux verwenden möchtest, hast du Probleme. Deswegen hat das FPC-Team schon vor langer Zeit die RTL der Unixsysteme bereinigt und nun finden sich entsprechende Funktionalitäten in entsprechenden Units (zugegeben, man muss sie erstmal finden ).

Edit:
So, ich habe jetzt weiter programmiert und es so gelöst:
function inet_addr(cpChar):Integer; cdecl; external 'libc.so';

alles weitere läuft jetzt auch. Mein Server ist portiert =3 Danke trotzdem für die Hilfe!
Wenn ich das richtig verstehe, dann dient inet_addr dazu einen String der Form 123.123.123.123 in eine IP-Addresse umzuwandeln. Diese Funktionalität findest du in der Unit Sockets . Die Dokumentation dazu findest du hier. Was du suchst dürfte wohl die Funktion StrToHostAddr sein (vermute ich mal).

Ich selbst bevorzuge für Netzwerk-/Internetzugriff mit Free Pascal übrigens lNet.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
creed steiger

Registriert seit: 2. Dez 2009
116 Beiträge
 
#6

AW: UDP Socket von Win auf Linux portieren

  Alt 30. Okt 2011, 16:29
Komisch,zumindest für FPC sollte schon länger keine Libc mehr in Synapse verwendet werden.
Könnte:
function IpToStr(value: integer): string;
aus der Unit synaip sein was du suchst?

http://synapse.ararat.cz/doc/help/
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#7

AW: UDP Socket von Win auf Linux portieren

  Alt 30. Okt 2011, 21:27
Könnte:
function IpToStr(value: integer): string;
aus der Unit synaip sein was du suchst?
Ich entnehme seiner Aussage mal, dass er die gegenteilige Funktion sucht. Gibt es sowas wie ein StrToIp in Synapse?

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von gORDon_vdLg
gORDon_vdLg

Registriert seit: 7. Nov 2009
26 Beiträge
 
Delphi XE Architect
 
#8

AW: UDP Socket von Win auf Linux portieren

  Alt 31. Okt 2011, 14:26
Ja, also wie gesagt bisher läuft mein Server, ist auch nur was kleines. Für größeres werde ich mir dann wohl mal die Vorschläge ansehen und gucken das ich Synapse ans laufen bekomme oder anderes. Mal sehen was mir zusagt.
Und ähm, danke Captain
  Mit Zitat antworten Zitat
creed steiger

Registriert seit: 2. Dez 2009
116 Beiträge
 
#9

AW: UDP Socket von Win auf Linux portieren

  Alt 31. Okt 2011, 17:47
Könnte:
function IpToStr(value: integer): string;
aus der Unit synaip sein was du suchst?
Ich entnehme seiner Aussage mal, dass er die gegenteilige Funktion sucht. Gibt es sowas wie ein StrToIp in Synapse?

Gruß,
Sven
Der Vollständigkeit halber
jep gibt es auch.
  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 19:24 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