下面是我在做什麼。基本上我有一些代碼在Linux C處理一堆數據,然後我需要發送到一個C#應用程序,可以在「實時」圖形數據圖形。所以我在做的是將數據保存到一個文件中,讓C#應用程序只是監視文件更改,然後更新圖形。但那真的不是那麼好。該文件正在閱讀,它正在改變更多,而不是隻是沒有樂趣。所以在聽取了一些有幫助的人們的建議後,我決定了解如何使用套接字發送數據。插座到Windows C#發出
因此,這裏是我現在正在做什麼。 C中的進程數據使用套接字發送給C#。完全可以工作。但這是問題。我需要在發送信息後使用usleep(10000),或者使用getchar()並緩慢發送每個值。否則,我會嘗試將發送的值轉換爲double。
錯誤讀取「System.FormatException:輸入字符串的不正確的格式在System.Number.ParseDouble(字符串值,的NumberStyles選項的NumberFormatInfo numfmt)從所拍攝的
sprintf(line, "%.4f", value[i][j]);
write(sock, line, 128);
usleep(10000);
C#代碼。例如這裏找到:http://www.codeproject.com/Articles/463947/Working-with-Sockets-in-Csharp
問題是在這裏:
content = Encoding.ASCII.GetString(buffer, 0, bytesRead);
chart4.Series["Graph"].Points.Add(Convert.ToDouble(content.ToString()));
那麼,爲什麼當我發送數據,但不經過暫停工作如果我發送它沒有暫停?我發送得太快了嗎?
另外,如果我有需要接收數據的一個恆定的流4個的不同圖表應該我有4個不同的插座等每一個不同的端口號,所以我知道哪一個是收到的數據?對於noob問題抱歉。我試圖自己學習這些東西。我仍然在學校,甚至還沒有學到任何東西,甚至遠程類似。
感謝您的答覆。這些方法之一是否比另一種更好?在我看來,添加分隔符是最簡單的,但也許不是最好的方法。 –
在這方面有許多學派。我個人會選擇#3,但請記住,沒有爲C指定native double的格式,所以如果您直接寫出字節,C程序可能無法移植到其他平臺。 –
哦,它也是有意義的,每個圖表將有自己的套接字端口號?我不知道如何告訴哪個圖表應該接收什麼信息。 –