Ich versuche immer noch ein bisschen zu verbessern, was ich vorher geschrieben habe. Jetzt hatte ich ein Problem mit dem Empfang von Daten. Ich habe ein Programm, das ich benutze, um Zeichenkette unter Verwendung von tcpClient zu einem Programm zu senden, in dem ich auf einem bestimmten Hafen lausche. Es funktioniert gut, so habe ich beschlossen, Daten zu senden, nach vorn ein weiteres MalEmpfangen und Senden von Daten in C#
public static void receiveThread()
{
while (true)
{
TcpListener tcpListener = new TcpListener(IPAddress.Any, port);
tcpListener.Start();
Console.WriteLine("Waiting for connection...");
TcpClient tcpClient = tcpListener.AcceptTcpClient();
Console.WriteLine("Connected with {0}", tcpClient.Client.RemoteEndPoint);
while (!(tcpClient.Client.Poll(20, SelectMode.SelectRead)))
{
NetworkStream networkStream = tcpClient.GetStream();
StreamReader streamReader = new StreamReader(networkStream);
data = streamReader.ReadLine();
if (data != null)
{
Console.WriteLine("Received data: {0}", data);
send(data); // Here Im using send Method
}
}
Console.WriteLine("Dissconnected...\n");
tcpListener.Stop();
}
}
/// <summary>
/// Sending data
/// </summary>
/// <param name="data">Data to send</param>
public static void send(string data)
{
TcpClient tcpClient = new TcpClient();
try
{
tcpClient.Connect(ipAddress, sendPort);
Console.WriteLine("Connected with {0}", tcpClient.Client.RemoteEndPoint);
}
catch (Exception e)
{
Console.WriteLine(e);
}
if (tcpClient.Connected)
{
NetworkStream networkStream = tcpClient.GetStream();
StreamWriter streamWriter = new StreamWriter(networkStream);
Console.WriteLine("Messege {0} to {1}", data, tcpClient.Client.RemoteEndPoint);
streamWriter.WriteLine(data);
streamWriter.Flush();
tcpClient.Close();
}
}
Manchmal funktioniert es gut, aber öfter, nennen wir es einen Empfänger, kann nicht bekommen, was Im zu senden versuchen. Und ich weiß wirklich nicht, was damit nicht stimmt. Sieht so aus, als könnte es ein Problem mit der send-Methode geben. Hier ist ein Beispiel von Empfängern Ausgabe
Waiting for connection...
Connected with 127.0.0.1:52449
Dissconnected...
Waiting for connection...
Connected with 127.0.0.1:52450
Received data: qweqwe
Dissconnected...
Waiting for connection...
Connected with 127.0.0.1:52451
Dissconnected...
Waiting for connection...
Connected with 127.0.0.1:52452
Dissconnected...
Waiting for connection...
Connected with 127.0.0.1:52453
Received data: zxczx
Dissconnected...
Waiting for connection...
Connected with 127.0.0.1:52454
Dissconnected...
Waiting for connection...
Connected with 127.0.0.1:52455
Received data: aasd
Dissconnected...
Waiting for connection...
Connected with 127.0.0.1:52457
Received data: www
Dissconnected...
scheint es hängt davon ab, wie schnell die Daten ein- und nicht jeder davon kann gesendet werden, so dass das meiste davon verloren geht. Ihre Antwort ließ mich vorsichtiger darüber nachdenken:> – Allek