Ich versuche, Daten zwischen einem Client und einem Server in C# zu senden. Ich bin ziemlich neu dazu. Ich führe diese auf dem gleichen Rechner aus, daher localhost.C# Server Client scheint nur in eine Richtung zu funktionieren
Der Server kann Daten vom Client empfangen, aber der Client scheint nie die Antwort von ja zu erhalten, obwohl er gesendet wurde.
Client: Der Client sendet Daten ("Apple") an den Server und sollte eine Antwort erhalten.
TcpClient client = new TcpClient("localhost", 1334); //Currently localhost
StreamReader sr = new StreamReader(client.GetStream());
StreamWriter sw = new StreamWriter(client.GetStream());
string sendData = "apple";
sw.WriteLine(sendData);
sw.Flush();
string data = sr.ReadLine();
if (data != null)
{
MessageBox.Show("It worked!");
}
else
{
MessageBox.Show("No data.");
}
client.Close();
Server: Der Server für die Daten hören. Wenn es Daten empfängt, prüft es, ob es Apfel ist und antwortet dann "Ja".
Alle Hilfe wird geschätzt.
Ich sehe zwei Dinge: fügen Sie einen 'sw.Flush()' auf der Server-Seite vor 'client.Close();', und da Sie haven‘ t hat den ganzen Code gepostet, es ist unklar, ob der Client auf die Antwort wartet, afaik 'ReadLine()' ist ein nicht blockierender Aufruf - er wird fortgesetzt, wenn der Server nicht rechtzeitig reagiert hat. – Furmek
@Furmek "fügen Sie eine sw.Flush() auf der Server-Seite vor dem client.Close();" Das war's! Vielen Dank! –