MultiThread TCP/UDP Server mit Purebasic möglich?

Fragen und Anregungen zum Forum.
Beiträge die Community betreffend
Shamos
Beiträge: 32
Registriert: 12.11.2014 09:44

MultiThread TCP/UDP Server mit Purebasic möglich?

Beitrag von Shamos »

Hallo liebe Gemeinde,

ich bin neu in Purebasic, besitze aber bereits recht gute Kenntnisse in Sachen Programmierung,
habe jedoch schon seit über 10 Jahre nichts mehr damit gemacht. Nun bin ich wegen Purebasic
und der damit in Verbindung stehenden "Nostalgie" dabei, wieder etwas Programmier-Feuer in mir zu entfachen.

Damit das klappen kann, ist es für mich sehr wichtig einen MultiThreaded TCP/UDP-Server erstellen zu können.
Allerdings bin ich mir nicht sicher ob dies mit PureBasic möglich ist. Zwar habe ich mir die Demo angeshen und sowohl
die NETWORK als auch die THREAD Bibliothek entdeckt, welche mir suggeriert das man das damit evtl. realisieren könnte,
andererseits bin ich mir da aber auch nicht so ganz sicher, da ich wie bereits angedeutet seit über 10 Jahren Inaktivität,
was das Programmieren angeht, etwas eingerostet bin.

Wissenswert hierbei ist, das ich im Moment mit der DEMOVERSION von PUREBASIC herum probiere
und mich gerne zum kauf einer Vollversion entscheiden möchte,
was natürlich nur Sinn für mich macht wenn ich
gewisse Dinge mit Purebasic auch im Stande bin zu realisieren.


Daher nun meine Frage:
Ist es möglich mit PureBasic einen Multi-Threaded Server (z.B. WebServer) zu schreiben,
also einen Webserver wie beispielsweise der bekannte Apache, der in der Lage ist auf einem Port zu lauschen,
während unendlich viele (bzw. soweit das OS dies ermöglicht) Verbindungen annimmt und diese verarbeitet, oder nicht?"

Falls Ja:
A) Funktioniert dies nur mit der Vollversion oder auch mit der Demo-Version?
B) Gibt es hierzu zufällig irgendwelche Code-Beispiele? (Beispiele für NICHT-MultiThreaded-Server sind für mich uninteressant)

Liebe Grüße und herzlichen Dank im voraus an alle aktiven User.
Windows 8.1 x64 | PureBasic 5.31 x64 | Dell Inspiron 3847 | i5-4440 3.1Ghz | 8GB DDR3 | Nvidia Geforce 625
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: MultiThread TCP/UDP Server mit Purebasic möglich?

Beitrag von Kiffi »

Hallo Shamos,

das hier könnte vielleicht für Dich ein Einstieg sein:

http://www.purebasic.fr/english/viewtop ... 55#p219955

Soweit ich das sehe, sollte der Code auch mit der Demo funktionieren.

Grüße ... Peter

// Edit: Damit der Code mit der aktuellen PB-Version läuft, alle *NetworkBuffer.l durch *NetworkBuffer ersetzen.

// Edit2: mh, klappt wohl doch nicht so recht. :| Ich bekomme eine invalid memory exception nach 17maligem Aufruf von CloseNetworkConnection().
Hygge
Shamos
Beiträge: 32
Registriert: 12.11.2014 09:44

Re: MultiThread TCP/UDP Server mit Purebasic möglich?

Beitrag von Shamos »

Danke erst mal an Kiffi für deine Antwort und alle die mein Thema gelesen haben.
Dein Programmbeispiel hat mir zwar nicht viel gebracht aber, ich habe selbst nochmal
experimentiert und siehe da, aus irgend einem Grund bekomme ich gleichzeitige Verbindungen
auf dem Server von vielen Clients, ohne das ich dabei irgendwas forken/threaden muss.

Wie es ausschaut ist das schon in Purebasic so eingebaut wenn man die kommandos
aus der NETWORK LIB nutzt, weshalb man dann nur noch die Purebasic internen ClientID's
welche von diesen Funktionen zurückgegeben werden in einem server-loop abarbeiten
muss, damit der Server dann so läuft wie er soll.

Das macht mich happy und genügt mir soweit, womit dieses Thema soweit von meiner Seite her abgehakt ist.
Windows 8.1 x64 | PureBasic 5.31 x64 | Dell Inspiron 3847 | i5-4440 3.1Ghz | 8GB DDR3 | Nvidia Geforce 625
Antworten