Windows 8 Metroアプリケーション用の新しいWinRT (.NET 4.5
フレームワークでIRCクライアントを構築しています。WinRT - TCPクライアント?
しかし、いくつか問題があります。 TCPデータを読むためにStreamSocket
を使用する必要があることはすでに分かっていますが、何か間違っている可能性があります。
私がこれを信じる理由は、データを受け取っていないからです。
以下、私のコードを参照してください。私はこれに関するWeb上でコードサンプルを見つけることができませんでした。
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