Zum Inhalt springen

C#: Prüfen ob Netzwerkverbindung noch besteht


steinadler

Empfohlene Beiträge

Ist das immer noch dasselbe Problem wie hier?

Bei mir funktioniert das jedoch nicht. Also jedenfalls kommt beim Client nichts an...
Du schickst 0 Bytes. Da kann nichts ankommen. Das ist ja auch nicht Sinn der Sache. Das Senden von 0 Bytes aktualisiert nur das Connected-Property.

Bei mir funktioniert das prima. Zeig doch mal den Code.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier mal mein Code:

		public bool IsConnected

		{

			get

			{

				try

				{

					byte[] buffer = new byte[1];


					m_oTelnetSocket.Blocking = false;

					m_oTelnetSocket.Send(buffer, 0, 0, 0);


					return m_oTelnetSocket.Connected;

				}

				catch

				{

					return false;

				}

			}

		}

Das hier ist eine Eigenschaft meiner ServerKlasse.

Diese wird von dem HauptThread in Abständen aufgerufen.

Müsste doch gehen, oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab mal was zusammengebaut.

Normalerweise müsste sich doch die Anwendung fehlerfrei beenden, wenn Das Socket auf dem Client geschlossen wurde, oder?

(Das Fenster dürfte praktisch nie angezeigt werden).

Kann das mal jemand so testen??

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using System.Net.Sockets;

using System.Net;


namespace TestAppNet

{

	/// <summary>

	/// Zusammenfassung für Form1.

	/// </summary>

	public class Form1 : System.Windows.Forms.Form

	{

		/// <summary>

		/// Erforderliche Designervariable.

		/// </summary>

		private System.ComponentModel.Container components = null;

		IPEndPoint	m_oLocalEndPoint = null;

		Socket m_oListenSocket	= null;			

		Socket m_oTelnetSocket	= null;


		public Form1()

		{

			InitializeComponent();


			m_oLocalEndPoint = new IPEndPoint(IPAddress.Parse("192.168.232.233"), 23);

			m_oListenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);


			m_oListenSocket.Bind(m_oLocalEndPoint);

			m_oListenSocket.Listen(2);

			m_oTelnetSocket = m_oListenSocket.Accept();

			while(m_oTelnetSocket.Connected)

			{

				m_oTelnetSocket.Send(new byte[1], 0, 0, 0);

			}

		}


		protected override void Dispose( bool disposing )

		{

			if( disposing )

			{

				if (components != null) 

				{

					components.Dispose();

				}

			}

			base.Dispose( disposing );

		}


		#region Vom Windows Form-Designer generierter Code

		/// <summary>

		/// Erforderliche Methode für die Designerunterstützung. 

		/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.

		/// </summary>

		private void InitializeComponent()

		{

			this.components = new System.ComponentModel.Container();

			this.Size = new System.Drawing.Size(300,300);

			this.Text = "Form1";

		}

		#endregion


		[STAThread]

		static void Main() 

		{

			Application.Run(new Form1());

		}

	}

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...