我在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