我在Windows 8 Metro應用程序的新WinRT (.NET 4.5
)框架中構建IRC客戶端。WinRT - TCP客戶端?
但是,我有一些問題。我已經發現我需要使用StreamSocket
來讀取TCP數據,但我可能做錯了什麼。
我相信這是因爲我沒有收到任何數據。
下面你看到我的代碼。我一直無法在網上找到任何關於此的代碼示例。
class IRCClient
{
private StreamSocket tcpClient;
public string Server = "holmes.freenode.net";
public int Port = 6665;
public IRCClient()
{
tcpClient = new StreamSocket();
}
public async void Connect()
{
await tcpClient.ConnectAsync(
new Windows.Networking.HostName(Server),
Port.ToString(),
SocketProtectionLevel.PlainSocket);
DataReader reader = new DataReader(tcpClient.InputStream);
string data = reader.ReadString(reader.UnconsumedBufferLength);
MessageDialog dialog = new MessageDialog(data);
}
}
數據總是以下代碼空字符串。此外,UnconsumedBufferLength總是返回0.
怎麼回事?
隨機想法;你有沒有嘗試過異步方法?也許他們想使用異步? –
是的,在連接時沒有收到任何信息。你將不得不在InputStream上調用ReadAsync()。 –
對不起,只是一個瘋狂的猜測,但不是IRC需要多播UDP連接? – Haspemulator