AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

LAN-Anbindung

Ein Thema von Jens Hartmann · begonnen am 31. Dez 2009 · letzter Beitrag vom 7. Jan 2010
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#21

Re: LAN-Anbindung

  Alt 2. Jan 2010, 17:58
Das funktioniert nicht,

erst dauert es ein wenig und dann kommt folgende Fehlermeldung.
Miniaturansicht angehängter Grafiken
aufzeichnen_105.gif  
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#22

Re: LAN-Anbindung

  Alt 2. Jan 2010, 18:07
Zitat von Jens Hartmann:
Das funktioniert nicht,

erst dauert es ein wenig und dann kommt folgende Fehlermeldung.
Nö, funkt anscheinend perfekt, ist eine WSAETIMEDOUT!

Also, btnConnect + warten bis im Memo1 connected + dann schnell btn SendDrücken!

Testen!
Lanthan Astat
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#23

Re: LAN-Anbindung

  Alt 2. Jan 2010, 18:12
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.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#24

Re: LAN-Anbindung

  Alt 2. Jan 2010, 18:17
Zitat von Jens Hartmann:
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.
Port und IP überprüfen, versuchen mit Telnet eine Verbindung aufzubauen!
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#25

Re: LAN-Anbindung

  Alt 2. Jan 2010, 18:30
Die Einstellungen stimmen.

Mit Telnet bekomme ich allerdings scheinbar eine Verbindung. Da ich Windows Vista nutze, musste ich mir allerdings folgende Telnetvariante laden.

Telenet
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#26

Re: LAN-Anbindung

  Alt 2. Jan 2010, 19:12
Zitat von Jens Hartmann:
Die Einstellungen stimmen.

Mit Telnet bekomme ich allerdings scheinbar eine Verbindung. Da ich Windows Vista nutze, musste ich mir allerdings folgende Telnetvariante laden.

Telenet
Naja, der Telnet Client funktioniert genauso wie der Demo Client.

Hab somit keine weiteren Tips mehr, leider!

lg. Astat
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#27

Re: LAN-Anbindung

  Alt 2. Jan 2010, 19:13
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:
OnLookup
OnConnecting
OnConnect
OnWrite
in genau dieser Reihenfolge.

Hier mal der aktuelle Code.

Delphi-Quellcode:
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;
Ich denke das, das so ganz gut aussieht. Allerdings weis ich nicht, ob meine Hardware mich als USER akzeptiert.

[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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#28

Re: LAN-Anbindung

  Alt 2. Jan 2010, 19:57
Zitat von Jens Hartmann:
So,ich habe das ganze jetzt nochmal in Delphi neu geschrieben, und es funktioniert.
Jup, damit kann man nun arbeiten.

Zitat von Jens Hartmann:
..ich habe gerade gelesen, das Du mit Lazarus arbeitest. Kann es sein, das ich dadurch den Client nicht sauber geöffnet bekommen habe.
Nein, sollte die client.dof und die Client.dcu im lib Verzeichnis, dran schuld sein, einfach löschen, und projekt danach mit Delphi öffnen.

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
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#29

Re: LAN-Anbindung

  Alt 2. Jan 2010, 20:44
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:
Passwort: 12345678
IdentNr.: 12345678
Code: 12345678
Wie kann ich die jetzt senden, und vorallem wann muss ich diese senden. Ist das ansonsten schon so wie ich mir das vorstellen muss.

Gruß Jens
Miniaturansicht angehängter Grafiken
aufzeichnen_206.gif  
Angehängte Dateien
Dateityp: txt decode_neu_940.txt (1,8 KB, 6x aufgerufen)
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#30

Re: LAN-Anbindung

  Alt 2. Jan 2010, 21:32
Zitat von Jens Hartmann:
Ich brauche ja folgende Zugangsdaten.
Code:
Passwort: 12345678
IdentNr.: 12345678
Code: 12345678
Wie kann ich die jetzt senden, und vorallem wann muss ich diese senden. Ist das ansonsten schon so wie ich mir das vorstellen muss.

Gruß Jens

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
Lanthan Astat
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz