Hi Leute
Ich bin momentan dabei einen Fakeserver für einen Client zu schreiben.Ich habe die tcp mit Wireshark abgefangen die der Client mit dem original Server hat.
Wenn ich meinen Fakeserver starte empfängt er auch das erste Datenpaket vom Client doch wenn ich dann mit dem original paket antworte sendet der client nichts mehr.Im original antwortet er sorfort wieder.
Aber er aktzepiert die antwort des servers da die read anweisung halt wartet und der Client auch nicht abstürzt.
Der server läuft mit einem Thread.
hier der wichtige codeteil:
Code:
//NetworkStream clientStream = tcpClient.GetStream();
// ASCIIEncoding encoder = new ASCIIEncoding();
TcpClient tcpClient = (TcpClient)client;
NetworkStream clientStream = tcpClient.GetStream();
StreamWriter mystream = new StreamWriter("data.txt");
int bytesRead = 0;
//bytesRead = clientStream.Read(message, 0, 4096);
string str = HexString2Ascii("44330100000000004000000001000000f34c756cc2ca9fe41a751e1ea7e09e0df5ec0be06df94047b7ab8cf35ee7a413c5588446f3ea88cbf84b4adf614579cb64fcb0cd36fa79a0f84b4adf614579cb");
//hier wird die original abgefange antwort in windows(1252) umgewandelt
byte[] message;
string result = String.Empty;
while (true)
{
message = new byte[10000];
bytesRead = clientStream.Read(message, 0, 10000);//hier emfängt er das erste paket des clienten
ASCIIEncoding encoder = new ASCIIEncoding();
textBox1.AppendText(Encoding.GetEncoding(1252).GetString(message, 0, bytesRead));
byte[] buffer = Encoding.GetEncoding(1252).GetBytes(str);
clientStream.Write(buffer, 0, buffer.Length);
clientStream.Flush();
Thread.Sleep(1000);
bytesRead = clientStream.Read(message, 0, 10000);//hier bleibt er hängen
}
}