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
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
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?
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
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
ok hat sich schon erledigt, mein programm soll unter .net 1.1 oder maximal 2.0 laufen
aber danke 🙂
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
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".^^
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
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
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