Hi community,
ich habe derzeit ein Programm (fertig vorgegeben, nicht zu ändern), welches mir über eine TCP-Verbindung double oder ganzzahlige Werte verschickt.
Ich programmiere die Emfpängerseite, auf der ich die Daten in ein byte-Array einlese und dieses dann in einer Console ausgeben möchte.
Problem dabei ist, dass die empfangenen DAten ja zunächst wieder in einen Double konvertiert werden müssen.
Derzeit habe ich es so probiert:
Es soll dabei z.B. die Geschwindigkeit eines Objekts übertragen werden.
Wenn diese beispielsweise 8,0000 m/s beträgt, gibt mir meine Console jedoch 4.079.....E320 aus. Warum?
Der nächste Schritt wäre dann, dass ich verschiedene Datentypen (double, byte, long) verschicke, diese in das Array lade und dann ausgeben lasse. Wie könnte ich das denn realisieren?
Viele Grüße
Hoschi
ich habe derzeit ein Programm (fertig vorgegeben, nicht zu ändern), welches mir über eine TCP-Verbindung double oder ganzzahlige Werte verschickt.
Ich programmiere die Emfpängerseite, auf der ich die Daten in ein byte-Array einlese und dieses dann in einer Console ausgeben möchte.
Problem dabei ist, dass die empfangenen DAten ja zunächst wieder in einen Double konvertiert werden müssen.
Derzeit habe ich es so probiert:
PHP:
namespace Empfänger
{
class TCP_Server
{
static void Main(string[] args)
{
byte[] buffer = new byte[32]; //Empfangsbuffergröße 32 Byte
var TS_IP = IPAddress.Parse("127.0.0.1"); // Einstellen der TS Client-IP. 127.0.0.1 eingeben für lokale Testzwecke.
int TS_Port = 5480;
TcpListener tcpServer = new TcpListener(TS_IP, TS_Port); //TCP-Empfangen auf IP: "TS_IP" Port: "TS_Port"
//TCP-Server initialisieren
tcpServer.Start();
Console.WriteLine("TCP-Empfänger gestartet auf IP: {0} und Port: {1}", TS_IP, TS_Port);
using (Socket socket = tcpServer.AcceptSocket())
{
while (true)
{
if (socket.Available > 0)
{
socket.Receive(buffer); //Empfangen in Buffer
double d = BitConverter.ToDouble(buffer, 0);
Console.WriteLine("Geschwindigkeit :{0}", d);
}
Console.BackgroundColor = ConsoleColor.Black;
Console.WriteLine("Daten empfangen.");
}
else
Thread.Sleep(10);
}
}
Es soll dabei z.B. die Geschwindigkeit eines Objekts übertragen werden.
Wenn diese beispielsweise 8,0000 m/s beträgt, gibt mir meine Console jedoch 4.079.....E320 aus. Warum?
Der nächste Schritt wäre dann, dass ich verschiedene Datentypen (double, byte, long) verschicke, diese in das Array lade und dann ausgeben lasse. Wie könnte ich das denn realisieren?
Viele Grüße
Hoschi