Hallo,
in C# habe ich folgendes Problem. Ich möchte mit SOCKET eine Verbindung
zu einem anderen Rechner aufbauen. Alllerdings soll der
USB-Ethernet-Adpater benutzt werden. Dieser hat die IP-Adresse:
192.168.0.8.
Was müsste ich tun, damit ich den USB-Ethernet-Adpter mit der IP-Adresse
verwenden kann?
Guten Morgen, mit der Pink Klasse kann man natürlich auch pingen.
Allerdings kann man die Sequenznummer vom ICMP-Protokoll nicht auslesen.
Wenn dies trptzdem gehen sollte, wäre es für meinen Fall super.
Anwender schrieb:> Allerdings kann man die Sequenznummer vom ICMP-Protokoll nicht auslesen.> Wenn dies trptzdem gehen sollte, wäre es für meinen Fall super.
Vielleicht hilft dir das hier weiter:
http://www.winsocketdotnetworkprogramming.com/clientserversocketnetworkcommunication8i.html
Ausschnitt aus dem Code (PingReceiveCallback):
/*Console.WriteLine("Icmp.Id = {0}; Icmp.Sequence = {1}",
icmpv4Header.Id,
icmpv4Header.Sequence
);*/
> Guten Morgen, mit der Pink Klasse kann man natürlich auch pingen.
"Pink Klasse" -> man findet die Sängering Pink gut. Du meinst sicher
"Ping-Klasse". ;))
Hallo,
danke für den Link. Diese Internetseite kenne ich bereits. Für meine
Anwendung ist eine SOCKET Verbindung das richtige. Bei der Umsetzung hab
ich allerdings noch Probleme. Es soll zum Beispiel alle 10ms ein Ping
gesendet werden. Dabei müsste die Applikation feststellen können, ob ein
Timeout aufgetreten ist oder nicht. Jetzt gibt es hierfür die
Möglichkeit das ganze synchron oder asynchron zu realisieren.
Wahrscheinlich ist asynchron die richtige Wahl. Wie müsste ich dies mit
dem Timeout umsetzen?
Markus schrieb:> Anwender schrieb:>> Es soll zum Beispiel alle 10ms ein Ping>> gesendet werden.>> Unter Windows? Ziemlich ambitioniert, würde ich sagen.>> Grüße> Markus
ist das so?
ich hatte mal ein Problem, und um die Ursache zu finde, ein Programm
geschrieben das UDP Pakete versendet, ich brauchte zwar nur 16ms und
17ms Abstände, man kann aber alles einstellen bis runter zu 1ms (weniger
hab ich nie probiert)
ich hatte mit der Genauigkeit (also dem Abstand der Pakete) nie ein
gröberes Problem...
ich wüsste auch nicht warum..
Anwender schrieb:> Wenn ich mit der SendTo Methode einen Ping versendet, wie müsste der> Timeout programmiertechnisch behandelt werden?
kannst du mal zeigen wie du mit SendTo einen Ping versendest?
Anwender schrieb:> Das geht in C# mit SOCKET. Im ersten Paramter von der Methode SendTo> wird das generierte Frame (byte[]) übergeben> pingSocket = new Socket(destEndPoint.AddressFamily, SocketType.Raw,> ProtocolType.Icmp);
dort kann es keinen Timeout geben!!
Du sendest einfach ein RAW packet. Das ist wie wenn du jemand rufst und
er nicht antwortet.
Du musst selber auf den Antwort warten und wenn sie nicht schnell genug
kommt dann einen Timeout selber festlegen.
Warum nimmst du nicht die fertig ping Klasse? Wenn dich das Blockieren
stört, dann verwende Threads.
Eine eigene Frage?
Dieser Thread ist über 11 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.