memory access violation

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

onkelz89

Betreff: memory access violation

BeitragDi, Mai 23, 2006 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
hi bei diesem code kommt nach einiger zeit ein m.a.v.

Code: [AUSKLAPPEN]
ip$="HIER IST EIN IP"
While Not KeyHit(1)
strmGame=OpenTCPStream(ip$,8080)
;WriteString strmGame,"ACTION"
Delay 500
action$=ReadString$(strmGame)

CloseTCPStream strmGame
Wend


der server läuft einwandfrei und ist vorher geöffnet worden.

warum kommt der mav?
 

Dreamora

BeitragDi, Mai 23, 2006 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
wahrscheinlich weil der Socket noch nicht freigegeben wurde. Pack mal ein delay nach den Closestream ...

Gibts irgend einen intelligenten Grund gleich loopintern connect und disconnect einzubauen? TCP ist eine stabile Verbindung, nicht wie UDP ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

onkelz89

BeitragDi, Mai 23, 2006 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das hat seinen grund (das war nich der komplette code nur die fehlerquelle)

hab delay 1000 hinter closetcp gesetzt fehler kommt immernoch... werde es jetzt mit 2500 versuchen aber vielleicht liegt es ja auch an was anderem
 

onkelz89

BeitragMi, Mai 24, 2006 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
habs was verändert hab fehler gefunden aber neuer tritt auf.
und zwar durchläuft er nur 5 schleifen wenn er bis dahin keine antwort bekommen hat "gibt er auf" darum der neue code:

Code: [AUSKLAPPEN]
While Not KeyHit(1)
strmGame=OpenTCPStream(ip$,8080)
If strmgame=0 Then ;<---- wenn er nicht öffnet
   Print"nö"
   CloseTCPStream strmGame
   Delay 3000
Else

WriteString strmGame,"ACTION"
Delay 500
action$=ReadString$(strmGame)

Print"hehe"
endif
wend


aber ich dachte das wäre weil er zu schnell hintereinander verbindet deswegen der delay 3000 und danach neuer versuch

allerdings ist die ausgabe auf dem bildschrim so:

hehe
hehe
hehe
hehe
hehe



... immer nö

bis ich wieder was senden lasse
nur das kommt dann nicht als befehl an sondern nur zur "wiederbelebung"
und dann müsste ich nochwas senden.
es ist aber wichtig das es beim ersten senden klappt bzw das das nö maximal einmal kommt dann wieder hehe

wie kann ich das machen?
und warum hört er nach 5 versuchen auf?

Jolinah

BeitragMi, Mai 24, 2006 23:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du bei jedem Schleifendurchgang neu verbindest, müsste die Verbindung am Ende auch immer getrennt werden:

Code: [AUSKLAPPEN]
While Not KeyHit(1)
strmGame=OpenTCPStream(ip$,8080)
If strmgame=0 Then ;<---- wenn er nicht öffnet
   Print"nö"
   CloseTCPStream strmGame
   Delay 3000
Else

WriteString strmGame,"ACTION"
Delay 500
action$=ReadString$(strmGame)
CloseTCPStream(strmGame) ;<---------------------

Print"hehe"
endif
wend


Weiss aber nicht ob das Problem dadurch behoben wird Wink
 

onkelz89

BeitragDo, Mai 25, 2006 2:03
Antworten mit Zitat
Benutzer-Profile anzeigen
oh sorry das hatte ich ... aber hab den rest unten nich kopiert gehabt sondern nur schnell hingeschrieben..

das problem besteht zwar immernoch nur hab ich mich für nen anderen lösungsweg entschieden... und zwar einen button der einen string sendet und wenn das andere prog wieder "lebt" dann sendet er erst den befehl

danke für die antworten

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group