Telnet

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Telnet

Beitrag von R4z0r1989 »

Code: Alles auswählen

; PureBasic Visual Designer v3.95 build 1485 (PB4Code)



Buffer = AllocateMemory(1000)
InitNetwork()


;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Editor
  #String_IP
  #Text_IP
  #Text_Port
  #String_Port
  #Button_Connect
  #String_Send
  #Button_Send
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 480, 360, "Telnet",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      EditorGadget(#Editor, 10, 40, 460, 280,#PB_Editor_ReadOnly)
      StringGadget(#String_IP, 60, 10, 110, 20, "")
      TextGadget(#Text_IP, 10, 10, 30, 20, "IP :")
      TextGadget(#Text_Port, 220, 10, 30, 20, "Port :")
      StringGadget(#String_Port, 270, 10, 60, 20, "")
      ButtonGadget(#Button_Connect, 380, 10, 90, 20, "Connect")
      StringGadget(#String_Send, 10, 330, 390, 20, "")
      ButtonGadget(#Button_Send, 410, 330, 60, 20, "Send")
      
    EndIf
  EndIf
EndProcedure

Open_Window_0()
DisableGadget(#String_Send,1):DisableGadget(#Button_Send,1)

SetGadgetColor(#Editor,#PB_Gadget_BackColor,$A30000) 

Repeat
  Event = WindowEvent() 
  If Event = #PB_Event_CloseWindow 
    Quit = 1 
  
  ElseIf Event = #PB_Event_Gadget
    
    Select EventGadget()
      
      Case #Button_Connect
        If conA = 0
          IP$ = GetGadgetText(#String_IP)
          Port$ = GetGadgetText(#String_Port)
          If IP$ = "" Or Port$ = ""
            MessageRequester("Error","Bitte IP und Port eingeben")
          Else
          verbindung = OpenNetworkConnection(IP$,Val(port$))
            If Verbindung = 0
              MessageRequester("Error","Die Verbindung kann nicht hergestellt werden")
            Else
              DisableGadget(#String_IP,1):DisableGadget(#String_Port,1):DisableGadget(#String_Send,0):DisableGadget(#Button_Send,0)
              conA = 1
            EndIf
          EndIf
        ElseIf conA = 1
          CloseNetworkConnection(Verbindung)
          DisableGadget(#String_IP,0):DisableGadget(#String_Port,0):DisableGadget(#String_Send,1):DisableGadget(#Button_Send,1)
          conA = 0
        EndIf
        
      Case #Button_Send
        Message$ = GetGadgetText(#String_Send)
        SendNetworkString(verbindung,Message$+Chr(13)+Chr(10))
        SetGadgetColor(#Editor,#PB_Gadget_FrontColor,$B3FFB3)
        AddGadgetItem(#Editor,-1,Message$)
        SetGadgetText(#String_Send,"")
       
      EndSelect
       
      If verbindung > 0
        If NetworkClientEvent(verbindung) > 0
          ReceiveNetworkData(Verbindung, Buffer, 1000)
          FirstChar.b = PeekB(buffer)
          If FirstChar >= 32 And FirstChar <= 125
            SetGadgetColor(#Editor,#PB_Gadget_FrontColor,$9393FF)
            AddGadgetItem(#Editor,-1,PeekS(Buffer))
          EndIf
          FreeMemory(Buffer)
        EndIf
      EndIf
      
      If GetGadgetItemText(#Editor,21,0) <> ""
        RemoveGadgetItem(#Editor, 0)
      EndIf
 
  EndIf

Until quit=1
Also mein Problem ist dass er nach ein paar antworten vom Server Wiederholungen von einer antwort schreibt!
Aber dass fällt bei der Benuzung sowieso auf!

Mein 2. Problem dass er unerwünschte Leerzeilen macht!

Und mein 3. Problem ist das er nicht nur zeilenweise die Textfarbe übernimmt sondern immer global!

Ich hoffe ihr könnt mir helfen!