Hallo Leute,
ich finde einfach den Fehler nicht. Es geht um folgendes ich Sende etwas zu meinem Server (tcplistener) welcher daraufin Antwortet und wieder zurück etwas zum Server sendet. Nun will ich aber erneut etwas zum Server senden und baue keine neue Verbindung auf, sie sollten sich ja noch in Verhandlung befinden...
So aber bei der 2ten Versand erhalte ich von server keine Nachricht.
Ich Poste hier mal nen Codeschnipsel, hier schaut er nach:
Hier Sieht man was er empfängt, ABER er empfängt nur 1 mal etwas....Bei "MessageBox.Show("empfang3" + empfang);" geht er nur 1 mal in der schleife rein, das bedeutet wie gesgat er Empfängt nichts weiter.....
Nun komme ich zum Sender:
Hier sendet er es noch einmal....
Ich hoffe einer von euch kann mir sagen was ich genau falsch mache.
Viele Grüße und Danke für eure Hilfe
Fridulin
ich finde einfach den Fehler nicht. Es geht um folgendes ich Sende etwas zu meinem Server (tcplistener) welcher daraufin Antwortet und wieder zurück etwas zum Server sendet. Nun will ich aber erneut etwas zum Server senden und baue keine neue Verbindung auf, sie sollten sich ja noch in Verhandlung befinden...
So aber bei der 2ten Versand erhalte ich von server keine Nachricht.
Ich Poste hier mal nen Codeschnipsel, hier schaut er nach:
Code:
listener.Start();
while (!listener.Pending())
{
TcpClient client = listener.AcceptTcpClient();
status.Text="Verhandlung beginnt...";
handleClient(client);
}
Hier Sieht man was er empfängt, ABER er empfängt nur 1 mal etwas....Bei "MessageBox.Show("empfang3" + empfang);" geht er nur 1 mal in der schleife rein, das bedeutet wie gesgat er Empfängt nichts weiter.....
Code:
private void handleClient(TcpClient client)
{
NetworkStream stream = client.GetStream();
Encoding enc = Encoding.UTF8;
byte[] buffer = new byte[1024];
int read = stream.Read(buffer, 0, 1024);
string empfang = enc.GetString(buffer, 0, read);
if (empfang.StartsWith("ich bins "))
{
einlogversuch(empfang, stream);
}
if (empfang.StartsWith("Liste schicken, bitte"))
{
liste_schicken(empfang, stream);
}
MessageBox.Show("empfang3" + empfang);
}
Nun komme ich zum Sender:
Code:
TcpClient client = new TcpClient();
client.Connect("192.168.1.2", 1407);
NetworkStream stream = client.GetStream();
pb_status.Value = 50;
sendeNachricht(stream, "ich bins " + tb_name.Text + "," + tb_passwort.Text + "," + eigeneIP);
string Antwort = leseNachricht(stream);
if(Antwort == "Passwort falsch")
{
meldung = "ja, " + Antwort;
setTextAsync(meldung);
}
if(Antwort == "Eingeloggt")
{
meldung = "Login Erfolgreich";
setTextAsync(meldung);
sendeNachricht(stream, "Liste schicken, bitte"); //hier sendet er das nicht nochmal
//liste_anfordern();
}
Hier sendet er es noch einmal....
Code:
private static void sendeNachricht(NetworkStream stream, string nachricht)
{
Encoding enc = Encoding.UTF8;
byte[] buffer = enc.GetBytes(nachricht + "\r\n");
sendeBuffer(stream, buffer, buffer.Length);
}
private static void sendeBuffer(NetworkStream stream, byte[] buffer, int size)
{
stream.Write(buffer, 0, size);
}
Ich hoffe einer von euch kann mir sagen was ich genau falsch mache.
Viele Grüße und Danke für eure Hilfe
Fridulin
Zuletzt bearbeitet: