Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: libnodave und falsche IP

  1. #11
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von TheEngineer0815 Beitrag anzeigen
    hm.......
    wie wird die Verbindung jetzt überhaupt beendet???
    über Readbytes werden nämlich danach immer noch Daten aus der SPS ausgelesen, das möchte ich natürlich nicht.
    Wenn du den Socket vorher selber geöffnet hast bist du auch dafür verantwortlich diesen wieder zu schließen.

    IMHO könnte sich libnodave bei einer ISO TCP-Verbindung wenigstens auf ISO-Ebene trennen (Disconnect Request).
    Libnodave macht das aber nicht - scheint im Normalfall auch nicht weiter zu stören, da die SPS die Ressource spätestens beim Schließen des Sockets wieder freigibt.

  2. #12
    TheEngineer0815 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.01.2009
    Beiträge
    9
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So... jetzt stell ich mal ne blöde Frage...

    was ist eigentlich unter Windows die Funktion mit der ich die Verbindung openSocket(....) die ja in der openSocket.h von libnodave zu finden ist wieder schließen kann?

    Man merkt das ich außer den Vorlesungen an der FH noch nie viel mit Programmiern zu tun hatte ...

  3. #13
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von TheEngineer0815 Beitrag anzeigen
    was ist eigentlich unter Windows die Funktion mit der ich die Verbindung openSocket(....) die ja in der openSocket.h von libnodave zu finden ist wieder schließen kann?
    Mittels
    closesocket(SOCKET s)


    http://msdn.microsoft.com/en-us/library/ms737582(VS.85).aspx

    Unter Windows abschließend noch ein
    WSACleanup()

  4. #14
    TheEngineer0815 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.01.2009
    Beiträge
    9
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Morgen

    closesocket(s) funktioniert leider nicht, da ich auf LAbWindowsCVI programmiere funktioniert die MSDN Library nicht.

    Hab jetzt aber bei der Suche in openSocket.c die Funktion close(s) gefunden die in der Header Datei unistd.h drin ist ist....... funktioniert leider auch nicht in LabWindows....

    EDIT: MSDN Library für LabWindows nachinstalliert, jetzt kanns ja richtig losgehen



    Danke
    Geändert von TheEngineer0815 (12.03.2009 um 11:18 Uhr)

  5. #15
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von TheEngineer0815 Beitrag anzeigen
    Morgen

    closesocket(s) funktioniert leider nicht, da ich auf LAbWindowsCVI programmiere funktioniert die MSDN Library nicht.


    Danke
    Es hat mir vor ein paar Tagen ein User geschrieben, daß er aus VB mit openSocket() geöffnete sockets nicht durch Aufruf von closesocket aus wins2_32.dll schließen kann.
    Ich habe ihm eine geänderte Version geschickt, bei der openSocket.h um eine Funktion closeSocket() ergänzt wurde. Diese ruft lediglich closesocket() aus wins2_32.dll.
    Das anghängte Archiv enthält die geänderten Dateien.
    Angehängte Dateien Angehängte Dateien

  6. Folgender Benutzer sagt Danke zu Zottel für den nützlichen Beitrag:

    TheEngineer0815 (12.03.2009)

  7. #16
    TheEngineer0815 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.01.2009
    Beiträge
    9
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke!

    Nur noch ein Frage zum Einbinden:
    Muss ich jetzt die neue openSocketw.c in mein Programm einbinden,
    bzw. openSocket.h um

    int __stdcall closeSocket(SOCKET h);

    ergänzen?

    Und ich hoffe auch das ich den Funktionsaufruf mit closeSocker((SOCKET)fds.rfd) wohl richtig mache.
    Geändert von TheEngineer0815 (12.03.2009 um 13:53 Uhr)

  8. #17
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von TheEngineer0815 Beitrag anzeigen
    Danke!

    Nur noch ein Frage zum Einbinden:
    Muss ich jetzt die neue openSocketw.c in mein Programm einbinden,
    Nein, die Funktion steht zur Verfügung, wenn du die neue libnodave.dll verwendest.
    Wenn du in .NET programmierst, bräuchte es auch noch eine Ergänzung in libnodave.net.cs

    Zitat Zitat von TheEngineer0815 Beitrag anzeigen
    bzw. openSocket.h um

    int __stdcall closeSocket(SOCKET h);

    ergänzen?
    Ja, wenn du in C programmierst.
    Oder du schreibst int __stdcall closeSocket(SOCKET h);
    in dein Programm.
    Und ich hoffe auch das ich den Funktionsaufruf mit closeSocker((SOCKET)fds.rfd) wohl richtig mache.[/quote]
    Soweit ich das auswendig weiß ist es nicht falsch. Ganz richtig ist es, genau die Variable einzusetzen, die openSocket ursprünglich zurückgeliefert hat.
    Das macht dann einen Unterschied, wenn zukünftige Versionen von Libnodave hier einen selbstdefinierten Datentyp verwenden würden.

Ähnliche Themen

  1. CPU 314 zeigt falsche Bestellnummer an
    Von damu60 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 09.11.2010, 14:49
  2. falsche Passworteingabe OP77B
    Von isensmet im Forum HMI
    Antworten: 7
    Letzter Beitrag: 05.06.2009, 12:05
  3. 3 Mal falsche Passwort
    Von Pikador im Forum HMI
    Antworten: 4
    Letzter Beitrag: 19.02.2008, 09:02
  4. Falsche Ware
    Von waldy im Forum Stammtisch
    Antworten: 33
    Letzter Beitrag: 23.01.2008, 00:42
  5. op 27 falsche eingabe
    Von Anonymous im Forum HMI
    Antworten: 5
    Letzter Beitrag: 23.09.2004, 19:38

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •