C# Wie liest man eine lange Zeichenkette korrekt ein?

...komplette Frage anzeigen

3 Antworten

Das hat jetzt aber wenig mit TCP zu tun sondern einfach wie du eine Variable außerhalb einer Methode anlegst und an ihr immer wieder was anfügst sobald über den Stream was reinkommt.

Antwort bewerten Vielen Dank für Deine Bewertung
mAin0x 02.06.2016, 07:48

Und wie? :D

0

Im Grunde ist es genau so wie du gesagt hast. Du musst die Bytes halt zusammenstückeln, bis du ein Paket zusammen hast. Viel Spass!

Antwort bewerten Vielen Dank für Deine Bewertung
mAin0x 02.06.2016, 08:31

Ja, das ist ja das Ding, ich weiß, wie man einmal Bytes empfängt aber nicht, wie man das in eine Schleife packt. Gibt es eine gute Website oder kannst du mir evtl. einfach diesen Codefetzen schreiben?

0
EightSix 02.06.2016, 10:18
@mAin0x

In dem von dir geposteten Code in einer anderen Frage liest der Server ja immer wieder die empfangenen Bytes ein in einer Schleife. Statt halt das was da empfangen wird direkt zu verarbeiten musst du das an einen Zwischenspeicher anfügen. Dann eine Methode auslösen die überprüft ob mittlerweile ein Start- und Stopzeichen empfangen wurde -> wenn ja, dann den Teil dazwischen extrahieren und zur Verarbeitung weiter geben.

0
nikolaiki 02.06.2016, 15:22
@mAin0x

Mach es wie jeder ernsthafte Programmierer: klau dir den Code irgendwo zusammen. 

Wie wärs hiermit? http://www.codeplanet.eu/tutorials/csharp/4-tcp-ip-socket-programmierung-in-csharp.html?start=1 

byte[] rcvBuffer = new byte[BUFSIZE];
int bytesRcvd;
// Lässt den Server in einer Endlosschleife laufen
for (; ; ) { Socket client = null; try { client = servSock.Accept(); // Empfange bis der client die Verbindung schließt, das geschieht indem 0 // zurückgegeben wird while ((bytesRcvd = client.Receive(rcvBuffer, 0, rcvBuffer.Length,SocketFlags.None)) > 0) {
0

Was möchtest Du wissen?