Serverprobleme
- captain third
- Beiträge: 194
- Registriert: 12.12.2004 13:14
- Kontaktdaten:
dieses thema wurde im englischen forum schon oft behandelt. hier gibt es infos zu einem simplen chatserver/client:
http://purebasic.myforums.net/viewtopic ... highlight=
Mike
http://purebasic.myforums.net/viewtopic ... highlight=
Mike
- captain third
- Beiträge: 194
- Registriert: 12.12.2004 13:14
- Kontaktdaten:
- captain third
- Beiträge: 194
- Registriert: 12.12.2004 13:14
- Kontaktdaten:
mmh,naja,nun,also,äääähm
ich dachte einen chat zu machen,auf console() ist einfach,naja das da seine schwirigkeiten ind ist klar,aber so insgesammt find ich es einfach,ich hab mir auch die hilfe durchguggn müssn um den server und den clienten zu schreiben,ein paar tutorials habsch mia au durchglesn,früher hab ich ja auch ein bisschen BB3D gekonnt,oderBBP,manchmal hat ich auch langeweile und hab mich an Qbasic rangemacht,naja jetzt ist halt purebasic an die reihe,und mir gefällts
aber jemanden der mir so einiges erklärn kann wär mir natürlich lieber

ich dachte einen chat zu machen,auf console() ist einfach,naja das da seine schwirigkeiten ind ist klar,aber so insgesammt find ich es einfach,ich hab mir auch die hilfe durchguggn müssn um den server und den clienten zu schreiben,ein paar tutorials habsch mia au durchglesn,früher hab ich ja auch ein bisschen BB3D gekonnt,oderBBP,manchmal hat ich auch langeweile und hab mich an Qbasic rangemacht,naja jetzt ist halt purebasic an die reihe,und mir gefällts
@tranquil
ich finde so ein chat is doch ein guter anfang
@captain third
des wird schon
den speicher musst du doch nicht leeren.
das problem entsteht bei PeekS(*Buffer) (ohne länge)
da ReceiveNetworkData() kein chr(0) am ende des empfangenen strings setzt, nimmt peeks() noch ein stück von einer alten längeren nachricht mit.
wenn du jetzt aber PeekS(*Buffer,BufferLength) benutzt, dann geht es problemlos.
BufferLength ist das ergebnis von ReceiveNetworkData
anhang:
momentan machst du es ja so:
wenn du aber immer mit einem frischen leeren speicher arbeiten willst, dann würde ich es so machen:
keine ahnung welche technik besser ist....
beim nicht löschen sind es auf jeden fall weniger befehle in der hauptschleife, drum denke ich das es schneller ist.
mfG
Tobi
ich finde so ein chat is doch ein guter anfang
@captain third
des wird schon
den speicher musst du doch nicht leeren.
das problem entsteht bei PeekS(*Buffer) (ohne länge)
da ReceiveNetworkData() kein chr(0) am ende des empfangenen strings setzt, nimmt peeks() noch ein stück von einer alten längeren nachricht mit.
wenn du jetzt aber PeekS(*Buffer,BufferLength) benutzt, dann geht es problemlos.
BufferLength ist das ergebnis von ReceiveNetworkData
anhang:
momentan machst du es ja so:
Code: Alles auswählen
*Buffer = AllocateMemory(1000)
Repeat
;ReceiveNetworkData() hier wird der speicher nie gelöscht nur überschrieben
Delay(100)
ForEver
FreeMemory(*Buffer)Code: Alles auswählen
Repeat
*Buffer = AllocateMemory(1000)
;ReceiveNetworkData() hier sind nur nullen im speicher
Delay(100)
FreeMemory(*Buffer)
ForEverbeim nicht löschen sind es auf jeden fall weniger befehle in der hauptschleife, drum denke ich das es schneller ist.
mfG
Tobi
- captain third
- Beiträge: 194
- Registriert: 12.12.2004 13:14
- Kontaktdaten:
ReceiveNetworkData() gibt nicht in jedem Fall die anzahl der empfangenen Bytes zurück!
Ab und an kommt da auch ein #SOCKET_ERROR, was aber durchaus normal sein kann. Mit wsagetlasterror_() muss dann ermittelt werden was geschehen ist.
Im übrigen ist das nicht nur bei ReceiveNetworkData so. SendNetworkData() gint auch #Socket_Error zurück wenn was nicht so geklappt hat wie es sollte. Ansonsten gibt es die gesendeten Bytes zurück.
Ab und an kommt da auch ein #SOCKET_ERROR, was aber durchaus normal sein kann. Mit wsagetlasterror_() muss dann ermittelt werden was geschehen ist.
Im übrigen ist das nicht nur bei ReceiveNetworkData so. SendNetworkData() gint auch #Socket_Error zurück wenn was nicht so geklappt hat wie es sollte. Ansonsten gibt es die gesendeten Bytes zurück.
- captain third
- Beiträge: 194
- Registriert: 12.12.2004 13:14
- Kontaktdaten:
- captain third
- Beiträge: 194
- Registriert: 12.12.2004 13:14
- Kontaktdaten: