netzwerk

Anfängerfragen zum Programmieren mit PureBasic.
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

ok

Beitrag von Brügge »

hi danke!!
könntet ihr mir ein gutes tut empfeheln und wenn ja wo bekomme ich es??


ich programmiere seid 3 jahren Quick basic jedoch bin ich ein pure basic anfänger denn dazwischen liegen welten...

ich bräuchte also ein anfangstut ^^


thx brügge
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

www.purearea.net << schau dich da mal um! Die beste Resource

und

Robsite.de

und *schleichwerbung*

für nen paar Sourcecodes und 2 Tutorials ;-)

www.eimex.de
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Ich verstehe nich, wiese ihr mit Speicherbuffern ("AllocateMemory(...)") arbeitet???

Mit Strings geht's doch viiiel einfacher! :allright:
Bild
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

es hat riesen vorteile, schau die die PB hilfe an dann siehste warum ;-)

Und zudem: Einfache Strings können nicht übers NEtzwerk empfangen werden - nur gesendet via

SendNetworkString()

Welche dann mit

ReceiveNetworkData()

empfangen werden
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

2 Longs würde kein Mensch als String versenden, und um mehr geht es hier ja (bis jetzt) nicht.

Beispiel Senden:

Code: Alles auswählen

Var1 = 12
Var2 = 200
*Buffer = AllocateMemory(8)
PokeL(*Buffer, Var1)
PokeL(*Buffer + 4, Var2)
SendNetworkData(NetID, *Buffer, 8)
Beispiel Empfangen:

Code: Alles auswählen

*Buffer = AllocateMemory(8)
L = ReceiveNetworkData(NetID, *Buffer, 8)
Var1 = PeekL(*Buffer)
Var2 = PeekL(*Buffer + 4)
Das ist natürlich nur als Ansatz zu verstehen, da sind keinerlei Fehlerbehandlungen bei...
Zuletzt geändert von HeX0R am 31.05.2006 15:34, insgesamt 1-mal geändert.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Nee...
Was ich meine is:

Code: Alles auswählen

ReceiveNetworkData(ID,@string.s,Länge)
Da muss man das Empfangene nicht extra auslesen.

PS:
Kann sein, dass es bei 4.0 ganz anders iss, wenn ja, dann Sorry!
Bild
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

HeX0R hat geschrieben:2 Longs würde kein Mensch als String versenden, und um mehr geht es hier ja (bis jetzt) nicht.
Ja aber es hat für Brügge riesen vorteile, wenn er sich gleich das ganze Thema anschaut (also zum Thema Netzwerk)

Es ist nicht schwer - einmal begriffen - kann mans... wie Fahrrad fahren ;-)

Bin auch noch nicht lange mit Netzwerk dabei, bzw habe bisher noch kein Netzwerkprogramm geschrieben... allerdings kann man unter PB ganz gut damit arbeiten :allright:

//edit:

@Jilocasin so gehts auch glaub ich, und in dem Fall wäre es viel einfacher..... stimmt
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Es geht übrigens auch ohne Buffer:

Senden:

Code: Alles auswählen

SendNetworkData(NetID, @Var1, 4)
SendNetworkData(NetID, @Var2, 4)
Empfangen:

Code: Alles auswählen

ReceiveNetworkData(NetID, @Var1, 4)
ReceiveNetworkData(NetID, @Var2, 4)
Aber das ist gefährlich, weil bei grösseren Datenmengen auch mal nur die Hälfte der Variable ankommen könnte.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

HeX0R hat geschrieben:Aber das ist gefährlich, weil bei grösseren Datenmengen auch mal nur die Hälfte der Variable ankommen könnte.
Wie meinst du das?
Du benutzt doch im Beispiel nummerische Variablen...
Da kommt doch bei LONG auf jeden Fall 4 Byte an, oder?
:?: :?:
Bild
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Jilocasin hat geschrieben:
HeX0R hat geschrieben:Aber das ist gefährlich, weil bei grösseren Datenmengen auch mal nur die Hälfte der Variable ankommen könnte.
Wie meinst du das?
Du benutzt doch im Beispiel nummerische Variablen...
Da kommt doch bei LONG auf jeden Fall 4 Byte an, oder?
:?: :?:
Das Problem hier ist, dass der Rückgabewert von ReceiveNetworkData() nicht ausgewertet wird. Werden nun sehr viele Variablen , Texte, Sonstiges übertragen kannst du nicht sichergehen, ob die 4 Bytes deines Longs bereits vollständig übertragen wurden oder ob das ein oder andere Byte mit dem folgenden Paket nachgereicht wird.
Antworten