AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Testen ob Net Send Nachrichten angekommen sind
Thema durchsuchen
Ansicht
Themen-Optionen

Testen ob Net Send Nachrichten angekommen sind

Ein Thema von MasterDG · begonnen am 16. Okt 2005 · letzter Beitrag vom 17. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
MasterDG

Registriert seit: 29. Sep 2004
54 Beiträge
 
Delphi 2005 Personal
 
#1

Testen ob Net Send Nachrichten angekommen sind

  Alt 16. Okt 2005, 11:24
Hallo DPler!

Ich habe ein Programm geschrieben welches NetSend-Nachrichten verschickt. Dazu habe ich diesen Code benutzt. Das verschicken macht keine Probleme. Allerdings bekommt man ja keine Rückmeldung ob die Nachricht wirklich angekommen ist.
Das stört mich halt noch ein bischen und ich würde das gerne ändern.

Beim "normalen" verschicken über "net send user nachricht" bekommt man ja auch gesagt ob die Nachricht angekommen ist oder nicht. Wie kann ich das hier testen?

Am Ende des Codes wird ja mit GetLastError getestet ob irgendein Fehler aufgetreten ist. Jedoch sagt das nichts aus darüber ob die Nachricht auch wirklich angekommen ist oder nicht. Ich hatte mir überlegt ob man vielleicht irgendwo anders im Code eingreifen und testen könnte, z.B. wenn irgendeine Aktion nicht durchgeführt werden kann oder so. Ich hab aber leider keine Ahnung wo ich da ansetzten könnte .

Vielleicht weiß da jemand bescheid und kann mir helfen.

Ein anderer Ansatz wäre, denke ich, über NETAPI32.dll zu testen ob der Ziel-PC im Nachrichtenalias bekannt ist oder nicht.

Welche Möglichkeit sollte ich nehmen? Und wie soll ich das angehen?

Vielen Dank im Vorraus!

Gruß
MasterDG
Dominik
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Testen ob Net Send Nachrichten angekommen sind

  Alt 16. Okt 2005, 11:34
die funktion gibt doch einen Boolean zurück? Wenn die Nachricht also nicht zugestellt werden konnte und die Funktion richtig programmiert wurde solltest du False zurück bekommen wenn etwas beim versand schief gegangen ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
MasterDG

Registriert seit: 29. Sep 2004
54 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Testen ob Net Send Nachrichten angekommen sind

  Alt 16. Okt 2005, 14:16
Hallo!

Dieser Rückgabewert wird ja durch GetLastError bestimmt. Aber ich habe das mal getestet und jedes mal, egal ob die Nachricht ankommt oder nicht gibt dieser den gleichen Wert zurück. Also denke ich da wird nur getestet ob was lokal schiefgegangen ist und nicht ob der Name im Netzwerk vorhanden ist. Ich will ja wissen ob der Name im Netzwerk vorhanden ist und der Nachrichtendienst gestartet ist. Also ob eine problemlose Übertragung möglich ist.

Wie könnte ich das machen?

Gruß
MasterDG
Dominik
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Testen ob Net Send Nachrichten angekommen sind

  Alt 16. Okt 2005, 19:26
ich habs mir grad mal angesehen. Erst wird result auf False gesetzt und wenn dann das öffnen des Service fehlschlägt wird das result nie auf True gesetzt, sollte also funktionieren.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
MasterDG

Registriert seit: 29. Sep 2004
54 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Testen ob Net Send Nachrichten angekommen sind

  Alt 16. Okt 2005, 22:53
Hallo SirThornberry!

Danke für deine Antworten! Ich hab am Anfang auch gedacht dass das funktioniert. Aber ich hab es mal getestet und gemerkt, dass egal ob der Nachrichtendienst gestartet ist, ein richtiger oder falscher Ziel-PC-Name eingegeben wurde immer der Wert "true" zurückgeliefert wird!

Ich denke dass mit dem testen ob GetLastError=ERROR_IO_PENDING nur getestet werden sollte ob etwas bei dem WriteFile(..) schiefgegangen ist oder nicht. Anscheinend wird dabei aber nicht erkannt ob dieser nicht gestartet ist oder ein falscher Name für den Ziel-PC eingeben wurde.

Oder hab ich da was falsch verstanden?

Mir ist leider nicht ganz klar was dieser Quellcode im System macht das die NetSend-Nachrichten verschickt werden. Ich hoffe das kann mir einer Mal kurz erklären.

Gruß
MasterDG
Dominik
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#6

Re: Testen ob Net Send Nachrichten angekommen sind

  Alt 16. Okt 2005, 23:11
wenn die netsends auf udp basieren, kannst du das vergessen... das wuerd ich an deiner stelle erstmal rausfinden
Christoph
  Mit Zitat antworten Zitat
MasterDG

Registriert seit: 29. Sep 2004
54 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Testen ob Net Send Nachrichten angekommen sind

  Alt 16. Okt 2005, 23:25
Hallo!

Also ich weiß es nicht 100%tig aber Net Send müsste auf UDP basieren.

Es geht mir auch nicht darum zu erkennen ob ein Paket verloren gegangen ist sondern wie in der Eingabeaufforderung wenigstens eine Rückgabe zu bekommen falls der flasche Name der PC eingegeben wurde oder der Nachrichtendienst deaktiviert. Irgendwie wird das ja in der Eingabeaufforderung auch getestet...

Daher habe ich mir wie im 1. Thread erwähnt als Alternative nochüberlegt die NETAPI32.dll zubenutzen falls es dort eine Funktion zum Reinen testen gibt.

Gruß
MasterDG
Dominik
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Testen ob Net Send Nachrichten angekommen sind

  Alt 16. Okt 2005, 23:28
Hast du mal mein NetSend ausprobiert?
http://www.luckie-online.de/Developer/Delphi/Programme/
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#9

Re: Testen ob Net Send Nachrichten angekommen sind

  Alt 17. Okt 2005, 00:06
die API NetMessageBufferSend liefert den selben Fehler zurück, wie das "net send"-Kommando (logisch eigentlich, da dort ja auch die API verwendet wird... )

Function NetMessageBufferSend(ServerName, MsgName, FromName : PWideChar;Buf : Pointer;BufLen : Integer) : Integer; StdCall; External 'NETAPI32.DLL';
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#10

Re: Testen ob Net Send Nachrichten angekommen sind

  Alt 17. Okt 2005, 11:28
Zitat von MasterDG:
Also ich weiß es nicht 100%tig aber Net Send müsste auf UDP basieren.
'net send' verwendet die NetBIOS Datagram Services.

Delphi-Programm mit Quellcode, welches unter 9x und NT funktioniert:
http://www.bendlins.de/nico/delphi/NetSend.zip

Gruß Nico
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:18 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