TCP Socket, Daten als Byte Array senden und empfangen

Spezielle Fragen zu Netzwerk-Protokollen, DNS, Socket ...
Benutzeravatar
tionov
Site Admin
Beiträge: 540
Registriert: So 18. Mai 2014, 23:40
Kontaktdaten:

Re: TCP Socket, Daten als Byte Array senden und empfangen

Beitrag von tionov » Sa 9. Sep 2023, 10:20

PJBlack hat geschrieben:
Sa 9. Sep 2023, 09:34
na ja ... manchmal muss man halt tatsächlich selber denken ...
Und vor allen Dingen Code in Form von Bildern zu senden, ist wirklich keine gute Idee. Wie soll man ihn überhaupt ausprobieren ... erst abtippen? Ich würde mir die Arbeit nicht antun, selbst wenn ich Ahnung vom Thema hätte.
Alles Gute,

tionov

vuott
Foriker
Beiträge: 269
Registriert: Fr 16. Jan 2015, 01:27
Wohnort: Europäische Union - Italia
Kontaktdaten:

Re: TCP Socket, Daten als Byte Array senden und empfangen

Beitrag von vuott » Sa 9. Sep 2023, 13:34

PJBlack hat geschrieben:
Sa 9. Sep 2023, 09:34
das italienische gambas forum ist top ! und immer !!! einen blick wert ...
Ich danke, PJBlack, Ihnen für Ihre schönen Worte.

PJBlack hat geschrieben:
Sa 9. Sep 2023, 09:34
na ja ... manchmal muss man halt tatsächlich selber denken ...
......wenn die Person einen Kopf hat.
Europaeus sum

ArnoB
Foriker
Beiträge: 11
Registriert: Mo 28. Aug 2023, 17:08
Kontaktdaten:

Re: TCP Socket, Daten als Byte Array senden und empfangen

Beitrag von ArnoB » Sa 9. Sep 2023, 15:59

PJBlack hat geschrieben:
Sa 9. Sep 2023, 09:34
das italienische gambas forum ist top ! und immer !!! einen blick wert ...
ArnoB hat geschrieben:
Fr 8. Sep 2023, 16:09
... ist mir das zu mühsam ...
ArnoB hat geschrieben:
Sa 2. Sep 2023, 16:12
... Ist mir aber ehrlich gesagt zu mühsam. ...
mhhh ...
ArnoB hat geschrieben:
So 3. Sep 2023, 17:32
... was ich falsch gemacht habe, aber leider nicht wie ich es richtig machen kann.
na ja ... manchmal muss man halt tatsächlich selber denken ...
Oder einen anderen Weg suchen, welcher scheller zum Ziel führt! :D :D :D
Dann sollte man noch rechtzeitig erkennen, wenn man in einer Sackgasse ist! :D :D :D

ArnoB
Foriker
Beiträge: 11
Registriert: Mo 28. Aug 2023, 17:08
Kontaktdaten:

Re: TCP Socket, Daten als Byte Array senden und empfangen

Beitrag von ArnoB » Sa 9. Sep 2023, 16:23

Grabman hat mir folgenden Code programmiert, welcher mich weiter bringt:
gambas code
' Gambas class file

Private Socket1 As Socket 
Private cmd As Byte[] = [&H0, &H0, &H0, &H3, &H3, &H0, &H0, &H6, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0] 

' ' Nur für die Simulation:
'Private sServerIP As String = "192.168.123.176"   
'Private iPort As String = 8000  

Private sServerIP As String = "192.168.178.51"   
Private iPort As String = 12416                  

Public Sub Form_Open()

  Socket1 = New Socket As "Socket1"

End

Public Sub Socket1_Ready()

  Print "Connected to " & Socket1.RemoteHost
  Print "Local IP: "; Socket1.LocalHost

End

Public Sub Form_Close()

  Try Socket1.close

End

Public Sub Socket1_Read()
  Dim rx As String
  
  Read #Socket1, rx, Lof(Socket1)
  cmd = cmd.FromString(rx)
  For Each b As Byte In cmd    'Nur für das Monitoring
     Print Hex$(b); " ";
  Next
  Print
  
  Select Case cmd[7]
    Case &H7                     '1. Antwort
      cmd[7] = &H8
      SendCommand(cmd)       
    Case &H9                     '2. Antwort
      cmd[4] = &H4
      cmd[7] = &H90
      cmd[8] = &H2
      SendCommand(cmd)
    Case &H91                    '3. Antwort
      Socket1.Close 
      TextBoxPH.text = Format((cmd[10] * 256 + cmd[11]) / 100, "0.00")
      TextBoxRedox.text = Format((cmd[12] * 256 + cmd[13]) - 2000, "0.00")
  End Select
  
End

Public Sub Button1_Click()
  
  SendCommand(cmd)
  
End

Public Sub SendCommand(Command As Byte[])
  Dim StartTime As Date
  Try Socket1.Connect(sServerIP, iPort)
  StartTime = Timer
  Do
    Wait 0.01
  Loop Until (Socket1.Status = Net.Connected) Or (Timer >= StartTime + 1)
  If Socket1.Status <> Net.Connected Then
    Message.Error("Connection could not be established within 1s.")
    Return
  End If  

  Write #Socket1, command.tostring(0, command.count), command.Count 
  
End

Public Sub Socket1_Closed()

  Print "Connection terminated by the counter station."

End

Public Sub Socket1_Error()

  'These errors can occur at client sockets
  Select Socket1.Status
    Case Net.CannotCreateSocket
      Message.Error("Error: Cannot create socket.")
    Case Net.ConnectionRefused
      'Message.Error("Error: Connection refused.") 'This error occures i.e. when the server is down
    Case Net.CannotRead
      Message.Error("Error: Cannot read.")
    Case Net.CannotWrite
      Message.Error("Error: Cannot write.")
  End Select

End
Der Code funktioniert. Ich kann die gewünschten Werte über WLan anfordern und auswerten.

ArnoB
Foriker
Beiträge: 11
Registriert: Mo 28. Aug 2023, 17:08
Kontaktdaten:

Re: TCP Socket, Daten als Byte Array senden und empfangen

Beitrag von ArnoB » Sa 9. Sep 2023, 16:25

So, jetzt können die nächsten blöden Kommentare kommen. Bin schon gespannt. :shock:

ArnoB
Foriker
Beiträge: 11
Registriert: Mo 28. Aug 2023, 17:08
Kontaktdaten:

Re: TCP Socket, Daten als Byte Array senden und empfangen

Beitrag von ArnoB » Do 14. Sep 2023, 17:08

Ich dachte eigentlich, hier geht es um Programmieren. Aber scheinbat geht es hier um was Anderes.

Die veröffentlichten Codes als Bilddatei waren, weil ich hier neu bin, und noch nicht gesehen hatte, das man auch Gambas Code einstellen kann. Ist mir aber jetzt bekannt.

Den VB Code, den man ja nicht mir gambas vergleichen kann, musste ich dann wohl als Bilddatei einstellen.

:D :D :D

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste