![]() |
Re: LAN-Anbindung
Liste der Anhänge anzeigen (Anzahl: 1)
Das funktioniert nicht,
erst dauert es ein wenig und dann kommt folgende Fehlermeldung. |
Re: LAN-Anbindung
Zitat:
Also, btnConnect + warten bis im Memo1 connected + dann schnell btn SendDrücken! Testen! |
Re: LAN-Anbindung
Eben leider nicht.
Im Memo erscheint dieses Connect gar nicht. Ich habe auch mal in dem eintrag Memo1.Text einen Breakpoint gesetzt. Die Fehlermeldung kommt leider vorher. |
Re: LAN-Anbindung
Zitat:
|
Re: LAN-Anbindung
Die Einstellungen stimmen.
Mit Telnet bekomme ich allerdings scheinbar eine Verbindung. Da ich Windows Vista nutze, musste ich mir allerdings folgende Telnetvariante laden. ![]() |
Re: LAN-Anbindung
Zitat:
Hab somit keine weiteren Tips mehr, leider! lg. Astat |
Re: LAN-Anbindung
So,ich habe das ganze jetzt nochmal in Delphi neu geschrieben, und es funktioniert. Irgendwie stimmt was nicht mit dem Projekt. Seltsamerweise, würde an keiner Stelle ein Breakpoint genommen. Noch nichtmal bei einem ShowMessage im Btn.Click.
Zusätzlich habe ich jedem Ereignis der TClientSocket eine Eintrag ins TMemo verpasst und bekomme nach dem Programmstart die folgenden 4 Einträge...
Code:
in genau dieser Reihenfolge.
OnLookup
OnConnecting OnConnect OnWrite Hier mal der aktuelle Code.
Delphi-Quellcode:
Ich denke das, das so ganz gut aussieht. Allerdings weis ich nicht, ob meine Hardware mich als USER akzeptiert.
var
_Buffer : array [0..16] of Byte = ( $00, $00, $00, $0D, $C1, $92, $BD, $73, $2A, $BE, $2E, $47, $24, $F3, $03, $01, $00); function Write(ptrData: Pointer; cbData: integer): Boolean; var ret, cbRcv, cb, cbRead: integer; sockaddr: TSockAddr; WSData: TWSAData; szBuf: array of char; ClientSocket: TSocket; begin result := false; if (ptrData = nil) or (cbData <= 0) then EXIT; ClientSocket := 0; try ret := WSAStartup($0020, WSData); if (ret <> S_OK) then EXIT; ClientSocket := Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (ClientSocket = INVALID_SOCKET) then EXIT; FillChar(sockaddr, SizeOf(TSockAddr), #0); with sockaddr do begin sin_Family := AF_INET; sin_Port := htons(8016); sin_Addr := TInAddr(Inet_Addr(PChar('192.168.178.75'))); end; ret := Connect(ClientSocket, sockaddr, SizeOf(sockaddr)); if (Ret = Socket_Error) then EXIT; ret := Send(ClientSocket, ptrData^, cbData, 0); if (ret = SOCKET_ERROR) then EXIT; setlength(szBuf, 32768 * 2); cb := 0; szBuf[0] := #0; while true do begin ret := ioctlsocket(ClientSocket, FIONREAD, cbRead); if (ret = SOCKET_ERROR) then EXIT; if cbRead = 0 then break; cbRcv := Recv(ClientSocket, szBuf[cb], 32768, 0); if cbRcv = 0 then EXIT; if (cbRcv = WSAECONNRESET) or (cbRcv = SOCKET_ERROR) then EXIT; cb := cb + cbRcv; if cb + 32768 > Length(szBuf) then SetLength(szBuf, Length(szBuf) * 2); end; result := true; finally if ClientSocket > 0 then begin ShutDown(ClientSocket, SD_BOTH); Closesocket(ClientSocket); end; WSACleanup; end; end; procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('OnConnect'); end; procedure TForm1.ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('OnConnecting'); end; procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('OnDisConnect'); end; procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin Memo1.Lines.Add('OnError'); end; procedure TForm1.ClientSocket1Lookup(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('OnLookup'); end; procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add('OnRead'); end; procedure TForm1.ClientSocket1Write(Sender: TObject; Socket: TCustomWinSocket); begin ClientSocket1.Socket.SendBuf(_Buffer, Length(_Buffer)); Memo1.Lines.Add('OnWrite'); end; procedure TForm1.btnLogonClick(Sender: TObject); begin ClientSocket1.Socket.SendBuf(_Buffer, Length(_Buffer)); end; [EDIT]Astat, ich habe gerade gelesen, das Du mit Lazarus arbeitest. Kann es sein, das ich dadurch den Client nicht sauber geöffnet bekommen habe. Gruß Jens |
Re: LAN-Anbindung
Zitat:
Zitat:
Nun, wenn das Programm jetzt eine Verbindung zum Server hat, versuch mal den nächsten Buffer mit diesen Daten zu senden. 00 00 00 0D C1 92 BD 74 2A BC 2E 47 24 F4 03 01 00 und lese die Daten die du vom Server bekommst in das Memo ein. Es sind Binärdaten, diese eventuell in Hex umwandeln. Wenn du den richtigen Port hast, sollten nun permanent Daten gesendet werden. Wichtig ist, dass alles genauso abläuft, wie bei deiner Netzweraufzeichnung. D.h. User + Passwort + Port, also alles mit identischen Parametern. Denn in den 13 Byte Daten sind user und Pwrd drinnen, eventuell noch ein Identifier mit 1 Byte. Da du die Daten für das Logon kennst, User + Pwrd, kannst Du nun Rückschlüsse auf die 13 Byte Daten ziehen. Dies musst Du Checken. Zieh Dir nochmals Tread #13 rein. Lass auch den Packetizer nebenbei laufen, dann siehst Du gleich welche Daten zurückkommen, und ob auch der richtige Kanal der Hardware verwendet wird (Messaging Port) und nicht der Konfigurationsport. lg. Astat |
Re: LAN-Anbindung
Liste der Anhänge anzeigen (Anzahl: 2)
Hab das jetzt gemacht und mal aufgezeichnet. Datei und Screenshot liegt im Anhang.
Es scheint aufjedenfall schon so zu sein, das meine Hardware erkennt, das da jemand was will. Was ich jetzt nicht so ganz verstanden habe, ist das mit den Zugangsdaten. Ich brauche ja folgende Zugangsdaten.
Code:
Wie kann ich die jetzt senden, und vorallem wann muss ich diese senden. Ist das ansonsten schon so wie ich mir das vorstellen muss.
Passwort: 12345678
IdentNr.: 12345678 Code: 12345678 Gruß Jens |
Re: LAN-Anbindung
Zitat:
OK, der _Buffer ist falsch, mit untenstehender Anmeldung versuchen, (Jeder 2. Hexwert lt. Thread #13 ist das was der Client sendet.) 1. 00 00 00 0D 2E 47 24 F3 2A BD C1 92 BD 74 03 01 00 2. 00 00 00 0D 2E 47 24 F4 2A BB C1 92 BD 75 03 01 00 Frage, die Zugangsdaten, sind die alle numerisch, weisst du die max länge der einzelnen Daten? ISt wichtig, da diese ja in den 13 Byte stecken? Astat |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz