Seite 2 von 2

Verfasst: 19.04.2008 08:36
von kreeph
ok danke, habs ausprobiert aber musste ein paar sachen entfernen, damit der code funktioniert hat. :?
jetzt hat es geklappt (glaub ich zumindest) aber der server antwortete mir nicht...
ich glaube ich kann den code einfach nicht richtig umformen. könnt ihr mir helfen?:coderselixir:
bitte und danke schonmal !
kreeph

Verfasst: 19.04.2008 13:49
von tobe
wenn du deine umgeformte version postest kann ich dir sagen woran es scheitert ;)
hier nochmal eine veränderte version von mir:

Code: Alles auswählen

CRLF$ = Chr(13) + Chr(10) 
Procedure Receive(ClientID.l)
  mem$ = Space($FFFF)
  PrintN(PeekS(@mem$, ReceiveNetworkData(ClientID, @mem$, $FFFF)))
EndProcedure 

OpenConsole()
If InitNetwork()
  Print("Ip vom TS server: ")
  ip$ = Input()
  PrintN("verbinde mit " + ip$ + ":51234")
  ServerID.l = OpenNetworkConnection(ip$, 51234)
  If ServerID = 0
    PrintN("fehler beim verbindungsaufbau mit " + ip$)
    Input()
    End
  EndIf
  Receive(ServerID)
  PrintN("sende help")
  SendNetworkString(ServerID, "help" + CRLF$)
  Receive(ServerID)
  Repeat
    input$ = Input()
    If input$
      SendNetworkString(ServerID, input$ + CRLF$)
      Receive(ServerID)
    EndIf
  Until LCase(input$) = "quit"
EndIf
End

Verfasst: 19.04.2008 15:01
von kreeph
der code scheint zu funktionieren aber nachdem ich erfolgreich den server kontaktiert habe, stürzt das programm ab

Verfasst: 19.04.2008 17:11
von tobe
hmm, abstürzen sollte es nicht ;)
ich hab das mit meinem TS server im lan getestet, kein plan wie sich das bei einem server im internet verhält, aber es sollte ja auch nur ein beispiel sein wie es ungefähr geht ;)

Verfasst: 19.04.2008 18:16
von kreeph
vielleicht stürzt der code halt in 3.30 ab. also iss es warscheinlich immer noch nich ganz richtig :(

Verfasst: 23.04.2008 18:07
von tobe
jetzt hab ich mal meine erste PB version ausgepackt und da stürzt der code auch ab ;)
der code müsste bei dir jetzt auch laufen:

Code: Alles auswählen

#MEM = 5000
Global Quit

Procedure PrintText(text$)
  StartPosition = 1
  Repeat
    EndPosition = FindString(text$, Chr(13), StartPosition)
    If EndPosition
      PrintN(Mid(text$, StartPosition, EndPosition - StartPosition))
      StartPosition = EndPosition + 2
    Else
      len = Len(text$) - StartPosition + 1
      If len > 0
        Print(Mid(text$, StartPosition, len))
      EndIf
    EndIf
  Until EndPosition = 0
EndProcedure

Procedure Receive(ConnectionID.l)
  mem = AllocateMemory(0, #MEM, 0)
  Repeat
    If NetworkClientEvent(ConnectionID)
      size = ReceiveNetworkData(ConnectionID, mem, #MEM)
      PrintText(PeekS(mem, size))
    Else
      Delay(30)      
    EndIf
  Until Quit
  FreeMemory(0)
EndProcedure

OpenConsole()
If InitNetwork()
  Print("Ip vom TS server: ")
  ip$ = Input()
  PrintN("")
  PrintN("Verbinde mit " + ip$ + ":51234")
  ConnectionID.l = OpenNetworkConnection(ip$, 51234)
  If ConnectionID = 0
    PrintN("Fehler beim Verbindungsaufbau mit " + ip$)
    Input()
    End
  EndIf
  ThreadID = CreateThread(@Receive(), ConnectionID)
  Repeat
    input$ = Input()
    If input$
      PrintN("")
      SendNetworkString(ConnectionID, input$ + Chr(13) + Chr(10))
    Else
      PrintN("help fuer befehlsliste oder quit zum beenden")
    EndIf
  Until LCase(input$) = "quit"
  Quit = 1
  WaitThread(ThreadID)
  CloseNetworkConnection(ConnectionID)
EndIf
End
mfG
tobe

Verfasst: 27.04.2008 19:30
von kreeph
wow, danke es funzt jetzt
hab die zweite seite erst übersehen :oops:
:allright: