Laden...
Avatar #avatar-2328.jpg
Cookiie myCSharp.de - Member
Student früher Leipzig, jetzt Out of Rosenheim Dabei seit 27.06.2007 363 Beiträge
Benutzerbeschreibung

Forenbeiträge von Cookiie Ingesamt 363 Beiträge

03.07.2007 - 15:35 Uhr

Habs jetzt anders gelöst.
Auf Client-Seite:


NetworkStream netInOut = null;
Byte[] ausgabe = null;
int ausgabeSize;
string ausgabeTxt = null;
while(loop)
{
	try
	{
		ausgabe = new Byte[cl.ReceiveBufferSize];
		ausgabeSize = netInOut.Read(ausgabe, 0, cl.ReceiveBufferSize);
		ausgabeTxt = Encoding.UTF8.GetString(ausgabe, 0, ausgabeSize);
		if (ausgabeSize == 0)
		{	
			loop = false;
			break;
		}
		Console.WriteLine(ausgabeTxt);
	}
	catch (Exception)
	{
		Console.WriteLine("Server sendet nicht mehr.");
		loop = false;
	}
}

Server schickt das Ganze dann so:


sendText = Encoding.UTF8.GetBytes(text);
Networkstream netInOut = cl.GetStream();
try
{
    netInOut.Write(sendText, 0, sendText.Length);
}
catch (IOException)
{
    Console.WriteLine("Client offline");	
}

Hoffe das hilft anderen.

Gruß Cookiie

03.07.2007 - 13:11 Uhr

hm, ich kenne mich mit ASP.Net jetzt nicht aus, aber ne grundlegende Idee wäre die Textbox auf readonly zu setzen, mit einem On-Click-event aktivierbar machen.
Aus deiner Anwendung heraus kannst du die Textbox ja beliebig manipulieren. Mit dem Readonly sollte verhindert werden das der Browser was einfügen kann.

Gruß Cookiie

03.07.2007 - 10:06 Uhr

Meine Vermutung wäre das die Datei dann noch irgendwie in Benutzung ist.
Kannst du sie den von Hand löschen? Läuft der Dienst vielleicht weiter?

02.07.2007 - 16:38 Uhr

was willst du denn genau machen?

02.07.2007 - 16:26 Uhr

Hi,
ich hab ein Problem mit meiner Client/Server-Programmierung. Die grundlegende Kommunikation klappt, nur wenn mein Client versucht aus dem Stream zu lesen wenn nichts mehr im Stream ist, hängt er sich auf, obwohl ich das Ganze mit try/catch auffange passiert nichts. Selbst beim debuggen komplett tot.
Zur Erklärung, mein Server schickt die Daten immer mit "\r\n" angehängt, damit ich sie auf Clientseite leichter lesen kann.


StreamReader inStream = new StreamReader(c.GetStream());
while(loop)
{
	try
	{
		string ausgabe = inStream.ReadLine();
		if (ausgabe.Equals(""))
		{	
			loop = false;
			break;
		}
		onsole.WriteLine(ausgabe);
	}
	catch (Exception)
	{
		Console.WriteLine("Server sendet nicht mehr.");
		loop = false;
	}
}

Bei string ausgabe = inStream.ReadLine(); bleibt er hängen wenn im Stream nicht mehr drin ist, springt aber auch nicht in den Catch-bereich.
Weiß jemand wie ich das sonst noch abfangen kann?

Gruß Cookiie

28.06.2007 - 14:32 Uhr

Ich bin da minimalist und so wie ich das bisherige überflogen habe, macht es für mich keinen Unterschied, ob Remoting, WCF oder simple TCP/IP ist.
Es wird immer ein Channel geöffnet, wählbares Protokoll usw. aber da ich weder entfernte Objekte ansprechen will noch sonst irgendetwas hochtrabendes, halte ich das eher für reichlich aufgebauscht, zumindest für meine Zwecke.
Und ein einfacheres Programmieren habe ich bisher auch nicht erkennen können, insofern who cares?

Gruß Cookiie

28.06.2007 - 13:26 Uhr

ok hat sich schon erledigt, mein programm soll unter .net 1.1 oder maximal 2.0 laufen
aber danke 🙂

28.06.2007 - 09:34 Uhr

Hi ich bastel grade auch an ner Server/Client-Applikation und versuche da gerade ne Kommunikation auf TCP/IP-basis zu integrieren. Aber was zum Teufel ist WCF?
Wichtig für mich wäre auch nur der relativ kurze Austausch von Daten.
Der Client sendet ne Nummer und bekommt ne andere vom Server zurück.
Mehr muss das Teil nicht können, ok, Multi-Clientfähig muss der Server sein, aber das ist ja dann sowieso ne Thread-Geschichte.

Gruß Cookiie

27.06.2007 - 11:17 Uhr

Hab ich probiert, war mir aber zu kompliziert, weil ich nicht durchgesehen habe, wie ich regex beibringen kann was ich will. Da hat mir nach 5min der Kopf gequalmt. Aber danke 🙂
Nach den ganzen Postings im Forum schreit das eh nach nem Tutorial, "Regex for Dummies".^^

27.06.2007 - 10:54 Uhr

Beschreibung:

Methode die einen String auf erlaubte Zeichen prüft und false zurückliefert, falls ein "verbotenes" Zeichen im String enthalten ist.

private bool pruefeEingabe(string tmp)
        {
            string pat = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            foreach (char ch in tmp)
            {
                if (pat.IndexOf (ch) < 0)
                    return false;
            }
            return true;
        }

Schlagwörter: String, Textbox, Eingaben, Zeichen, prüfen

Quelle: myCSharp.de

27.06.2007 - 10:51 Uhr

Hi,

manchmal sieht man den Wald vor lauter Bäumen nicht^^. Code hab ich gleich mal so angepasst. Das mit den Snippets werd ich auch gleich machen. Wußte so spontan nicht wohin damit.

Gruß Cookiie

27.06.2007 - 10:36 Uhr

Hi,

nachdem ich jetzt schon seit paar Tagen mir immer wieder mal Lösungansätze für verschiedene Probleme geholt habe. Nun mal nen Code-Schnippsel von mir.


		private bool pruefeEingabe(string tmp)
		{
			string pat = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
			foreach (char ch in tmp)
			{
				if (pat.IndexOf (ch) < 0)
					return false;
			}
			return true;
		}

Die übergebene Zeichenkette wird auf die erlaubten Zeichen überprüft, wenn ein anderes Zeichen gefunden wird, wird False zurückgegeben.
Es wird aber nur geprüft ob der Ausdruck korrekt ist, alles weitere sollte jeder selber nach seinen Wünschen gestalten.

Gruß Cookiie

edith sagt: code so besser