2013-01-07 51 views
3

我之前此代碼.NET 4.5C#.NET Windows 8應用TcpClient的代碼移植到StreamSocket

_Connection = new TcpClient(hostname, port); 
_Stream = _Connection.GetStream(); 

對於Windows 8應用我改爲:

_Connection = new StreamSocket(); 
await _Connection.ConnectAsync(new HostName(hostname), port.ToString()); 
_DataReader = _Connection.InputStream.AsStreamForRead(); 
_DataWriter = _Connection.OutputStream.AsStreamForWrite(); 

我認爲這是最簡單的解決方案,因爲我不需要在其他任何地方更改任何底層代碼,因爲我仍然使用Stream來讀取/寫入數據。

此代碼不能正常工作,就像預期的,我管理的成功投產寫的東西,但是當它的時間來讀取流,我不斷收到'\n' - 這是從我的預期響應爲期不遠。

回答

3

找到了解決辦法。希望有人發現它有用。

我所需要做的就是刷新_DataWriter中的流(這需要在每次寫入數據流時完成),然後_DataReader流開始按預期工作。

+0

您能否提供一個示例,瞭解如何使用_DataReader讀取數據。據我所知,沒有明顯的方式來讀取數據,而不知道預期的數據長度。 – intacto